程序1某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:
(1)录入每个学生的学号和考试成绩;
(2)按学号由小到大排出成绩表;
(3)计算并输出最高分及相应学生的学号。
要求程序运行后先显示如下菜单,并提示用户输入选项:
1.Append record
2.Sort in ascending order by number
3.Caculate Max. score of course and number
0.Exit
Please enter your choice:
然后,根据用户输入的选项执行相应的操作。

程序1某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- fuill 2022-01-02 10:35关注
手打不容易,满意给个采纳吧
#include <stdio.h> //typedef struct student { int id; int score; } t[30]; int post=0,n,max; void r() { int k; printf("输入学生个数:"); scanf("%d",&n); printf("输入学号和分数:\n"); for(k=0; k<n; k++) { scanf("%d%d",&t[k].id,&t[k].score); } z(); return; } void sort() { int j,k; struct student tem; for(k=0; k<n-1; k++) { for(j=0; j<n-k-1; j++) { if(t[j].id>t[j+1].id) { tem=t[j]; t[j]=t[j+1]; t[j+1]=tem; } } } for(k=0; k<n; k++) { printf("学号:%d 成绩:%d\n",t[k].id,t[k].score); } z(); return; } void m() { int j,k; max=t[0].score; for(k=1; k<n; k++) { if(t[k].score>max) { max=t[k].score; post=k; } } printf("最高分数:%d 学号为:%d",max,t[k].id); z(); return; } int z() { printf("1.Append record\n"); printf("2.Sort in ascending order by number\n"); printf("3.Caculate Max. score of course and number\n"); printf("0.Exit\n"); printf("Please enter your choice:\n"); int c=0; scanf("%d",&c); switch (c) { case 1: r(); break; case 2: sort(); break; case 3: m(); break; case 0: break; default: printf("error!"); break; } return 0; } int main() { z(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 9无用