为什么我得到这个错误的结果?

问题描述:

我试图做一个代码,每次a + b达到20时能够增加int'd'。为什么我得到这个错误的结果?

如果仍然有小于20的数字,那么这将是int' C'。

而是获得正确的结果在我的下一个计划是

49-0 

我得到这个错误的答案

47-40 

我应该怎么办?

#include <iostream> 
using namespace std; 
int main(){ 
    int a=50; 
    int b=18; 
    int c=a+b; 
    int d=0; 
    int i; 
for(i=0;i<c;i++) 
    { 
    while(c>20) 
    { 
    d+=1; 
    c=c-20; 
    break; 
    }} 
    cout<<d<<"-"<<c; 
return 0; 
} 
+0

请参阅http://meta.stackexchange.com/questions/40164/should-we-close-fix-my-program-questions – sashoalm

的问题是在你的while循环:

while(c > 20) 
{ 
    d+=1; 
    c=c-20; 
    break; 
} 

循环只会因为你的break语句的执行一次。

+0

当我删除break语句时,它给了我48-20,而正确答案是49 -0 – user3666894

+0

你可能想'while(c> = 20)' –

+0

非常感谢你 – user3666894