哪位C++高手能帮忙解决一下此程序问题啊
#include<iostream>usingnamespacestd;voidmain(){inta=0;while(a!=4){cout<<"1.解一元二次方程"<<...
#include<iostream>
using namespace std;
void main()
{
int a=0;
while (a!=4)
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if (a==1||a==2||a==3||a==4)
cout<<endl;break;
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case 1:cout<<"解一元二次方程"<<endl;break;
case 2:cout<<"出圈游戏之一"<<endl;break;
case 3:cout<<"出圈游戏之二"<<endl;break;
case 4:cout<<"再见!"<<endl;break;
}
}
}
这个程序当a的输入值为字符时本应输出
输入错误,重选1-4:
为何却进入死循环,不停刷屏呢……
大虾们帮帮忙啊~~~
厄,不等于的时候报错,输入非1-4的时候应该出 输入错误,重选1-4:
但是输入一个字符的时候却是刷屏…… 展开
using namespace std;
void main()
{
int a=0;
while (a!=4)
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if (a==1||a==2||a==3||a==4)
cout<<endl;break;
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case 1:cout<<"解一元二次方程"<<endl;break;
case 2:cout<<"出圈游戏之一"<<endl;break;
case 3:cout<<"出圈游戏之二"<<endl;break;
case 4:cout<<"再见!"<<endl;break;
}
}
}
这个程序当a的输入值为字符时本应输出
输入错误,重选1-4:
为何却进入死循环,不停刷屏呢……
大虾们帮帮忙啊~~~
厄,不等于的时候报错,输入非1-4的时候应该出 输入错误,重选1-4:
但是输入一个字符的时候却是刷屏…… 展开
8个回答
展开全部
#include<iostream>
#include<assert.h>
using namespace std;
void main()
{
/*这里要修改为char[]数组,因为输入可能会出现非int的字符,如果你定义为int,那么当输入为字符的时候,就会出现你说的死循环了*/
char a[1024]={'0'};
/* "*a"就是a[0]的意思,因为你要求的是1-4那么只需要一个字符就可以了,上面开1024是防止出现输入为abcde这种错误输入*/
while (*a!='4')
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{
if (*a>'0'&&*a<'5')/*这里是连续的,所以没必要用||或一个一个来*/
{
cout<<endl;
break;
}
cout<<"输入错误,重选1-4:";
}
switch(*a)
{
case '1':cout<<"解一元二次方程"<<endl;break;
case '2':cout<<"出圈游戏之一"<<endl;break;
case '3':cout<<"出圈游戏之二"<<endl;break;
case '4':cout<<"再见!"<<endl;break;
}
}
}
#include<assert.h>
using namespace std;
void main()
{
/*这里要修改为char[]数组,因为输入可能会出现非int的字符,如果你定义为int,那么当输入为字符的时候,就会出现你说的死循环了*/
char a[1024]={'0'};
/* "*a"就是a[0]的意思,因为你要求的是1-4那么只需要一个字符就可以了,上面开1024是防止出现输入为abcde这种错误输入*/
while (*a!='4')
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{
if (*a>'0'&&*a<'5')/*这里是连续的,所以没必要用||或一个一个来*/
{
cout<<endl;
break;
}
cout<<"输入错误,重选1-4:";
}
switch(*a)
{
case '1':cout<<"解一元二次方程"<<endl;break;
case '2':cout<<"出圈游戏之一"<<endl;break;
case '3':cout<<"出圈游戏之二"<<endl;break;
case '4':cout<<"再见!"<<endl;break;
}
}
}
展开全部
你的if那里,你的意思是输入等于1、2、3、4的时候报错还是不等于的时候报错?
你if那里有问题的,而且你可以直接在switch里面添加default:
你if那里有问题的,而且你可以直接在switch里面添加default:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,几年前我都遇到过这样的问题了,至今无法解决。
尝试过用C++的类型判断函数来做,还是无法实现。
没有弄明白是怎么回事。
尝试过用C++的类型判断函数来做,还是无法实现。
没有弄明白是怎么回事。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不就解决了么
#include<iostream>
using namespace std;
void main()
{
char a=NULL;
while (a!='4')
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if (a=='1'||a=='2'||a=='3'||a=='4')
{cout<<endl;break;}
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case '1':cout<<"解一元二次方程"<<endl;break;
case '2':cout<<"出圈游戏之一"<<endl;break;
case '3':cout<<"出圈游戏之二"<<endl;break;
case '4':cout<<"再见!"<<endl;break;
}
}
}
#include<iostream>
using namespace std;
void main()
{
char a=NULL;
while (a!='4')
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if (a=='1'||a=='2'||a=='3'||a=='4')
{cout<<endl;break;}
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case '1':cout<<"解一元二次方程"<<endl;break;
case '2':cout<<"出圈游戏之一"<<endl;break;
case '3':cout<<"出圈游戏之二"<<endl;break;
case '4':cout<<"再见!"<<endl;break;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
void main()
{
int a=0,b=0;
if (a!=4)//while 改为if
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if ((a==1||a==2)||(a==3||a==4))
{cout<<endl;break;}
else
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case 1:cout<<"解一元二次方程"<<endl;break;
case 2:cout<<"出圈游戏之一"<<endl;break;
case 3:cout<<"出圈游戏之二"<<endl;break;
case 4:cout<<"再见!"<<endl;break;
}
}
}
using namespace std;
void main()
{
int a=0,b=0;
if (a!=4)//while 改为if
{
cout<<"1.解一元二次方程"<<endl;
cout<<"2.出圈游戏之一"<<endl;
cout<<"3.出圈游戏之二"<<endl;
cout<<"4.退出程序"<<endl;
cout<<" 选择:";
while(cin>>a)
{if ((a==1||a==2)||(a==3||a==4))
{cout<<endl;break;}
else
cout<<"输入错误,重选1-4:";
}
switch(a)
{
case 1:cout<<"解一元二次方程"<<endl;break;
case 2:cout<<"出圈游戏之一"<<endl;break;
case 3:cout<<"出圈游戏之二"<<endl;break;
case 4:cout<<"再见!"<<endl;break;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while里面的break意味着出错跳出本次循环,由于外面还有一个循环,所以会不停地执行上面的循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询