第二个while所用的变量 j ,如果我把它定义在第一个while之前,得到的结果就不符合提议,但是我觉得 j 的定义域只是变大了,不明白为什么会影响输出的结果。具体可以看我下面的代码和注释。
/*
题目:提示用户输入一个正整数n,如果n是5,就输出下列图形,其他n值以此类推
*
**
***
****
*****
*/
#include <stdio.h>
int main()
{
int n = 0;
while(n<=0)
{
printf("请输入一个正整数:\n");
scanf("%d", &n);
}
int i = 0;
int j = 0; //为什么把j在这一行定义,得到的结果就是每行都输出1个* ? 为什么作用域大了反而不可以
while(i<n)
{
i++;
// int j = 0; //如果在这一行定义j,输出的结果就符合题目要求。
while(j<i)
{
printf("*");
j++;
}
printf("\n");
}
return 0;
} |
|