#include <stdio.h>
int main ()
{
int num, sum=0;
printf("Please enter a number: ");
scanf("%d",&num);
while (num>0)
{
sum += num;
printf("Please enter a number: ");
scanf("%d",&num);
}
printf ("Sum = %d ", sum);
return 0;
}
这是我做的。 我试图转换这个 while 循环,它添加数字直到用户输入 0 到 for 循环。我可以知道我的错误是什么吗?
#include <stdio.h>
int main ()
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
int sum=0;
for (int i=num; i!=0; )
{
sum += num;
printf("Enter a number: ");
scanf("%d", &num);
}
return 0;
}
答案 0 :(得分:2)
您只在循环中更新 "hits": [
{
"_index": "67706115",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"name": "multi grain bread"
}
},
{
"_index": "67706115",
"_type": "_doc",
"_id": "2",
"_score": 1.0,
"_source": {
"name": "breadsticks with soup"
}
}
]
和 num
。用作循环条件的 sum
不会更新。您应该删除未正确使用的变量 i
,并修复循环条件。
i
答案 1 :(得分:1)
为什么您认为 for()
循环是必要的?最好不要重复调用 scanf()
,而是使用 while
循环。例如:
int main(void) {
int num, sum=0;
while (1) {
printf("Enter a number: ");
if (scanf("%d", &num) != 1) break; // exit if there is no more input
if (num == 0) break; // also exit if 0 is entered
sum += num;
}
printf("Total = %d\n", sum);
return 0;
}
答案 2 :(得分:0)
可以使用无限循环并插入跳转语句来终止循环。在这种情况下:-
#include <stdio.h>
int main ()
{
int num, sum=0;
printf("Please enter a number: ");
scanf("%d",&num);
for(;;) // pretty common and casual way of running an infinite for-loop
{
if (num <= 0) // executes if num is less than or equals 0
{
break; // when break is executed this 'for' loop is terminated
}
sum += num;
printf("Please enter a number: ");
scanf("%d",&num);
}
printf ("Sum = %d ", sum);
return 0;
}