using namespace std;
int main(){
int userinp=-1,dig1=0,dig2=0,dig3=0,dig4=0;
while(userinp!=0) {
cin>>userinp;
if (userinp=0) userinp=0;
else if(userinp<0||userinp>9999) cout<<"Wrong input";
else if (userinp<10) { dig1++; userinp =-1;}
else if (userinp<100) {dig2++; userinp =-1;}
else if (userinp<1000) {dig3++; userinp =-1;}
else {dig4++; userinp =-1;}
}
cout<<dig1<<endl<<dig2<<endl<<dig3<<endl<<dig4;
return 0;
}
我正在尝试从学校教科书中进行练习,但由于陷入0时会运行
else if userinp<10
,因此陷入了无限循环。为什么?如果我在if结束后删除了部分。 最佳答案
您已在if条件部分中放置了赋值(=)而不是均等检查(==)。
更改此行:
if (userinp=0) userinp=0;
对此
if (userinp==0) userinp=0;
而且你应该很好。
祝好运
关于c++ - C++如果在if为真后运行,为什么要这样做,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59865608/