CornIT
CornIT
采纳率100%
2020-03-09 17:58

请问大佬们,我设置的switch case语句不进行跳转并且无限循环下面的菜单,请问问题出在哪里?

已采纳

#include/*9.从键盘上输入若干人学生的成绩,输出其中的最高成绩和最低成绩,当输入负数时结束输入。*/
using namespace std;
void showmean(); /*菜单*/
void write(int a,int b,int c,int d,int m,int n); /*键入*/
void write2(int c,int d,int e,int g,int m,int n);
void out(int m,int n); /*输出*/
int main ()
{
showmean();
int work;
cin>>work;
while(work!=3)
{
switch(work)
{
case 1:void write();break;
case 2:void out();break;
default:cout<<"sorry,you enter wrong number !"< }
showmean();
int work;
}
system("pause");
cout return 0;
}
void showmean()/*菜单*/
{
cout cout cout cout cout cout }
void write(int a,int b,int c,int d,int m,int n) /*写入系统*/ /*成绩存入,a,b作为输入动量,m是高项,n是低项*/
{
cout cin>>a;
cout<<"students score : "< cin>>b;
m=b,n=b;
cout<<"-enter 1--- continue to input"< cout cin>>c;
switch(c)
{
case 1:void write2(int c,int d,int e,int g,int m,int n);break;
case 2:void showmean();break;
default:cout<<"sorry,you enter wrong number !"<<endl;
}
}

void out (int m,int n) /*输出数据*/
{
cout<<"the highest score :"< cout }
void write2 (int c,int d,int e,int g,int m,int n) /*输入副本(d是无意义值)*/
{
do
{
cout cin>>d;
cout<<"students score : "< cin>>e;
if(e>m)m=e;
else if(e cout cout cin>>g;
}while(g==2);
switch(g)
{
case 2:void showmean();break;
default:cout<<"sorry,you enter wrong number !"<<endl;
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_43699716 码上夏雨 1年前

    你的程序就不完整,里面非常多的句法错误,而且命名也不规范,可读性几乎没有,针对你说的switch部分的语句,我做了部分修改,其它部分因为实在残缺不全我没办法帮你解决,这是代码:

    switch (work)
            {
            case 1:void write(); break;
            case 2:void out(); break;
            default:cout << "sorry,you enter wrong number !" << endl; break;
            }
    

    我看了你这部分的代码,大致理解为你之所以程序无法跳出在于switch语句中的break只能跳出switch循环,而你的switch包含在while循环中,你并没有设置跳出条件

    点赞 评论 复制链接分享