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;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试教科书上的一个练习,但它陷入无限循环,因为它else if userinp<10在我输入 0 时运行。为什么?如果我在 if 退出后删除部分。
您在 if 条件部分中放置了赋值 (=) 而不是等号检查 (==)。
改变这一行:
if (userinp=0) userinp=0;
Run Code Online (Sandbox Code Playgroud)
对此
if (userinp==0) userinp=0;
Run Code Online (Sandbox Code Playgroud)
你应该很好。
祝你好运
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |