赋值是编写一个程序,用户在其中输入数字,程序将输入的数字加到一个和上。每次输入时,打印该和。当用户输入0时,程序终止。
我的代码是:
#include <stdio.h>
int main(){
int n;
int i;
int sum = 0;
for(i=0; i<=n; i++){
scanf("%d", &i);
if(i==0){
break;
}
sum += i;
}
printf("%d\n", sum);
return 0;
}
然而,输出并不理想。
如果输入为:输出应为:1、3、6、10、15
现在它只输出总和15。
我是编程新手,感谢任何关于我可能做错了什么的建议:)
2条答案
按热度按时间wqsoz72f1#
只是一个警告:语句
i<=n
是未定义的行为,因为您没有给n
赋值,只是用int n
初始化了它。你应该使用
while (i != 0)
循环而不是for循环,因为你事先不知道你会迭代多少次,你会一直循环直到用户输入0
。要打印中间和,您应该将
printf
移动到循环内部。c2e8gylq2#
n
在这里未初始化。因此i<=n
将产生未定义的行为,这意味着任何事情都可能在那里发生。最好的方法是使用while
循环。解决方案