一个简单的循环问题,大家帮忙下

学校捐款,超过十万就停止捐款,帮忙看看我的程序哪里出问题了,得不到想要的结果

#include
int main()
{
int donation=0,amount=0;
while(amount<10) //捐款超过十万就不再接受捐献
{
scanf("%d\n",&donation);
amount=amount+donation;
}
return 0;
}

6个回答

scanf("%d",&donation);

不过,最好加个输出。

本来就是这样,如果你希望像你说的那样,得这么写
amount=amount+donation;
if (anount > 10) break;

devmiao
见了你女王大人喵姐还不跪下 自己调试下就知道,while的条件只在循环开始前判断。
5 年多之前 回复
u011475211
caoxwei2 我知道你说的那样可以,但我只想知道我这个为什么不行,求解惑,不想打基础的时候就不了了之,用while循环就不行吗,我觉得我这个没有逻辑上的错误啊?
5 年多之前 回复

死循环 amount+donation 2个都为0,能大于等于10吗??

u011475211
caoxwei2 不是有scanf吗,输入数字不就超过0了吗?接着输入就超过10了,比如8 1 1 1
5 年多之前 回复

这么写应该不会死循环的。把<改成=<试试

u011475211
caoxwei2 对的,为什么每次输入的总额超过十万才能中止while循环,而实际输出的捐款额却是10万, 比如我输入8,1,1共计10万却不能退出循环,而必须要输入8,1,1,1共计11万,才能中止 循环,而输出的总额却是10万.
5 年多之前 回复

我试过了不是死循环,我依次输入8 ,1 ,1,1,才能中断while循环,结果是8+1+1+1=11,而不是10

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问