qq_38933455 2017-06-09 12:47 采纳率: 0%
浏览 2047

为何我的程序switch运行不了?帮帮忙,我找了好久都不知道原因??

#include
#include
#define N 3
int num[N];
int i;
float math[N];
float english[N];
float physics[N];
float total[N];
float average[N];
int rank[N];
int main()
{void input();
void count();
void sort();
void print();
void search();
printf("\t1.学生信息录入\n");
printf("\t2.统计总分和平均分\n");
printf("\t3.按总分成绩排序\n");
printf("\t4.打印出名次表\n");
printf("\t5.学生信息查询\n");
char ch;
ch=getchar();
switch(ch)
{case1:input();break;
case2:count();break;
case3:sort();break;
case4:print();break;
case5:search();break;
default:putchar('\a');
}
return 0;
}

void input()
{for(int i=0;i<N;i++)
{ printf("输入学号:");
scanf("%d",&num[i]);
printf("数学成绩:");
scanf("%f",&math[i]);
printf("英语成绩:");
scanf("%f",&english[i]);
printf("物理成绩:");
scanf("%f",&physics[i]);
}
}

void count()
{for(int i=0;i<N;i++)
{total[i]=math[i]+english[i]+physics[i];
average[i]=total[i]/3.0;
}
}

void sort()
{int t;
count();
for(int j=0;j<N-1;j++)
for(int i=0;i<N-1-j;i++)
{if(total[i]<total[i+1])
t=total[i];total[i]=total[i+1];total[i+1]=t;
}
for(int k=0;k<N;k++)
rank[k]=k+1;
}

void print()
{printf("学号\t数学\t英语\t物理\t总分\t平均分\t排名");
printf("%d\t%f\t%f\t%f\t%f\t%f\t%d",num[i],math[i],english[i],physics[i],total[i],average[i],rank[i]);
}

void search()
{int n;
printf("\ninput number to look for:");
scanf("%d",&n);
int top,bott,mid,loca,sign;
top=0;
bott=N-1;
loca=0;
sign=1;
if((nnum[N-1]))
loca=-1;
while((sign==1)&&(top<=bott))
{mid=(bott+top)/2;
if(n==num[mid])
{loca=mid;
printf("NO.%d his sort is %d,math score is %f,english score is %f,physics score is %f.",n,rank[loca],math[loca],english[loca],physics[loca]);
sign=-1;
}
else if(n<num[mid])
bott=mid-1;
else
top=mid+1;
}
if(sign==1||loca==-1)
printf("%d not been found\n",n);
}

  • 写回答

2条回答 默认 最新

  • 战在春秋 2017-06-09 13:17
    关注
      case1:input(); break; 
        case2:count(); break;
        case3:sort(); break;
        case4:print(); break;
        case5:search(); break;
    

    修改为:

      case '1' :input(); break;
        case '2' :count(); break;
        case '3' :sort(); break;
        case '4' :print(); break;
        case '5' :search(); break;
    

    属于输入失误,小心一些就好了。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘