这是一个代码,它运行从n
到达1的循环,所以如果n=5
,则输出为5,4,3,2,1。
#include <stdio.h>
int main() {
int i, n;
printf("Enter value of n: ");
scanf("%d", &n);
for(i = n; i >= 1; i--) {
printf("%d\n", i);
}
return 0;
}
我想将for循环更改为while循环,并进行了这些更改
#include <stdio.h>
int main() {
int i = 1,n;
printf("Enter value of n: ");
scanf("%d", &n);
while(n > i){
n--;
printf("%d\n", n);
}
return 0;
}
但它从n-1
值开始,因此如果n=5
,则输出为4,3,2,1。
我究竟做错了什么?
答案 0 :(得分:2)
问题是,您在减少n
后打印答案。交换线。
然后,您需要将while
循环中的条件更改为n>=i
。
答案 1 :(得分:0)
在此代码中,您首先减少数字并打印n的值。因此,如果n = 5,它首先减1然后打印4,再次减1并打印3,这继续。
while(n>i){
n--;
printf("%d\n", n);
}
为了修复它,首先打印数字,然后减少它。固定代码如下:
while(n>i){
printf("%d\n", n);
n--;
}