代码没问题但运行不出来

明明代码是没有错误,但是就是运行不出来。求大佬解答🙏🙏🙏🙏🙏🙏
题目是这个:在这里插入图片描述
代码是这个:#include<stdio.h> #include<stdlib.h> typedef struct student { int num; //学号 char name[200]; //姓名 int score[5]; //五门课 double aver; }stu; void ave(stu s[],int n) //平均分 { double a[1000]; int i; for(i=0;i<n;i++) a[i]=(s[i].score[0]+s[i].score[1]+s[i].score[2]+s[i].score[3]+s[i].score[4])/5.0; printf("学号\t姓名\tA课成绩\tB课成绩\tC课成绩\tD课成绩\tE课成绩\t平均分\n"); for(i=0;i<n;i++) printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\t%.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].score[4],a[i]); } void search(stu s[],int n,int a) { int i,k=0; for(i=0;i<n;i++) { if(s[i].num==a) { printf("学号\t姓名\tA课成绩\tB课成绩\tC课成绩\tD课成绩\tE课成绩\n"); printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].score[4]); k=k+1; break; } } if(k==0) printf("\t没有查询到相关信息"); } void average(stu s[],int n) { int i,j; stu ss[10000]; stu *p=ss; for(i=0;i<n;i++) s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2]+s[i].score[3]+s[i].score[4])/5.0; for(i=0;i<n;i++) ss[i]=s[i]; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(ss[i].aver<ss[j].aver) { stu temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } } } printf("名次\t学号\t姓名\tA课成绩\tB课成绩\tC课成绩\tD课成绩\tE课成绩\t平均分\n"); for(i=0;i<n;i++) printf("%d\t%d\t%s\t%d\t%d\t%d\t%d\t%d\t%.1f\n",i+1,(p+i)->num,(p+i)->name,(p+i)->score[0],(p+i)->score[1],(p+i)->score[2],(p+i)->score[3],(p+i)->score[4],(p+i)->aver);} main() { int N,i; stu s[10000]; int num1; int menu; printf("请输入学生个数:"); scanf("%d",&N); for(i=0;i<N;i++) { printf("请输入学号 姓名 A课成绩 B课成绩 C课成绩 D课成绩 E课成绩\n"); scanf("%d%s%d%d%d%d%d",&s[i].num,&s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2],&s[i].score[3],&s[i].score[4]); } printf("\n\n"); printf("1---输出平均分\n"); printf("2---按名次顺序输出全部信息\n"); printf("3---按学号查询学生成绩和排名\n"); printf("0---退出\n"); printf("\n"); while(1) { printf("\n请输入要运行的程序:"); scanf("%d",&menu); switch(menu) { case 1:ave(s,N);break; case 2:printf("输入要查询的学号:"); scanf("%d",&num1); search(s,N,num1);break; case 3:average(s,N);break; case 0:exit(0); default:printf("输入错误\n");break; } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值