输入“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,则表明它正常工作。
答案 0 :(得分:2)
只要a
和b
为0
,您的代码就会除以零。那不行。您需要更改循环以在尝试使用它们之前检查值。