【Day 19】while 回圈 / for 回圈的范例讲解

今天,我们来讲讲昨天练习作业的程序码吧~
这是我的程序码 - while 回圈:

#include<stdio.h>
int main(){
	int i = 0 , j = 0, input;
	printf("Please input a number>> ");
	scanf("%d", &input);
	while(i < input){
		j = 0;
		while(j <= i){
			printf("*");
			j++;
		}

		printf("\n");
		i++;
	}
	return 0;
} 

输出结果:

我的解题思路:

  1. 由题目可知:如果输入 5,输出要是 5 行星星,且第几行就要有几个星星,所以,第一个想法是:会用双回圈去做,第一个(外层)的回圈控制行数,第二个(内层)回圈控制一行的星星数
  2. 两个回圈当然要宣告两个变数(ij)控制,再加上一个要控制最多几行、也就是我们的输入(input),所以总共宣告了三个 int 型态的变数。
  3. 先提示输入(printf()scanf()),我们输入的资料放在变数 input 里。
  4. 外层回圈是控制行数的,因为初始值为 0,所以,条件要写小於 input 时,才执行。(这样会刚好执行 input 次)
  5. 内层回圈是控制一行的星星数,这时候观察题目给的图,星星数是随着行数递增,所以,控制星星数的条件一定是会变动的值。我们用 ij 一起控制。然後因为初始值 i = j = 0 ,如果条件放(j < i),输出结果会先空一行(第一次内层回圈不会执行),并不是我们要的,所以应该加上""较为合适。
  6. 内层回圈做完一次(印完一行)要跳行!且记得,印每行星星前,j 要记得归零 !

接下来我们来看用 for 回圈要怎麽写:

#include<stdio.h>
int main(){
	int i, j, input;
	printf("Please input a number>> ");
	scanf("%d", &input);
	for(i=0; i<input; i++){
		for(j=0; j<=i; j++)
			printf("*");
		printf("\n");	
	}
	return 0;
} 

输出结果:

其实会用 while 回圈写,用 for 回圈应该也没有太大的问题了~而且个人认为,以这题来说,for 回圈似乎比 while 回圈方便~因为,用 for 回圈,就不会有忘记 ij 要记得更新的问题。

明天,我们来介绍"阵列"!!


<<:  [DAY20]图片旋转木马

>>:  食谱搜寻系统制作_上

安装 Debian 11 与呒虾米

前言 Debian 也在这几天释出第 11 版,开发代号 bullseye,是目前的稳定 (Stab...

Day03:浅谈 Git 和 GitHub

Git Git 是一个开源的分布式版本控制系统, 允许我们跟踪档案异动, 最初目的是为更好地管理 L...

[面试][前端]在使用後端的资料前,你有先做验证吗?

笔者背锅小故事 回想当年还是前端菜鸟时,我完全信任後端前辈回传的资料;记得当年有个产品上线前的测试一...

JavaFX+SceneBuliider+jfoneix +eclipse 安装

1.安装JavaFX 首先去GLUON官网下载 JavaFX Windows x64 SDK 版本的...

Day-3 用以在上个世代的游戏机取得最佳显示效果的色差端子

在怀旧主机中、色差端子通常是除了 HDMI 以外能用以得到最佳解析度的接头、若主机仍支援这个端子的话...