我构建了一个简单的函数,给定一个整数,返回每个较小的正方形。 ES:
input: 80
output:
1
4
9
:
64
所以我尝试使用while
和do..while
循环:
int main(){
int x;
int y = 0;
int z = 0;
while(x < 1){
printf("Insert an integer number greater than 0\n");
scanf("%d", &x);
} #approach with do..while
while(z <= x){ #do{
y += 1;
z = y * y;
printf("%d\n", z);
} #}while(z < x)
return 0;
}
我的输出达到:
input: 80
output:
1
4
:
81
如何使循环避免最后一次迭代,因为条件z <= x
只有在那时才为真,实际上产生一个无效的输出?
答案 0 :(得分:3)
只是说
int x = 0;
int z = 1;
int y = 1;
一开始,
printf("%d\n", z);
y += 1;
z = y * y;
循环中的
编辑:问题是你的陈述的顺序。先打印然后再检查。
完整答案如下:
int main(){
int x = 0;
int y = 1;
int z = 1;
while(x < 1){
printf("Insert a positive integer number greater than 0\n");
scanf("%d", &x);
} //approach with do..while
while(z <= x){ //do{
printf("%d\n", z);
y += 1;
z = y * y;
} //}while(z < x)
return 0;
}