为什么这个简单的东西会出错

Why is this simple thing giving an error?

本文关键字:出错 简单 为什么      更新时间:2023-10-16

当我输入"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并将其更改为flag= 1,当(a==0 &&b = = 0,,C ==0)

ab0时,代码除以0。这是行不通的。您需要更改循环,以便在使用之前检查值