为什么这个简单的事情会出错?

时间:2015-06-05 16:21:48

标签: c++

输入“0 0 0”时出错。在所有其他情况下,它工作正常。该代码基本上显示输入3数字序列是AP还是GP并输出相应的第四项。

#include<iostream>

using namespace std;

int main(){

int a,b,c;
do{
    cin>>a>>b>>c;
     if((b*b)==(a*c)){
        cout<<"GP "<<(c*(b/a))<<endl;
    }else if((2*b)==(a+c)){
        cout<<"AP "<<(c+(b-a))<<endl;
    }
}while(a!=0 && b!=0 && c!=0);

return 0;
}

但是如果我使用flag = 0更改代码并在(a == 0&amp;&amp; b == 0&amp;&amp; c == 0)时将其更改为flag = 1,则表明它正常工作。

1 个答案:

答案 0 :(得分:2)

只要ab0,您的代码就会除以零。那不行。您需要更改循环以在尝试使用它们之前检查值。