(1)排序:按照从高分到低分的顺序输出他们的信息;
(2)查询:能按学号查询某个学生的成绩;
(3)添加:能添加一个学生的信息((学号、姓名、成绩;
(4)删除:能删除一个指定学号的学生信息。

输入n并输入n(n<=100)个学生的信息(学号、姓名、成绩),存入数组,用结构数组编程解决问题。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2021-07-02 14:20关注
typedef struct _student { char name[20]; int nid; float score; }student; student stu[100]; int n; void sort() { for(int i=0;i<n-1;i++) for(int j=0;j<n-i-1;j++) { if(stu[j].score < stu[j+1].score) { student a = stu[j]; stu[j] = stu[j+1]; stu[j+1] = a; } printf("%10s%20s%10s\n","学号","姓名","成绩"); for(i=0;i<n;i++) printf("%10d%20s%10g\n",stu[i].nid,stu[i].name,stu[i].score); } void query() { int id; scanf("%d",&id); for(int i=0;i<n;i++) { if(stu[i].nid == id) { printf("学号:%d\n",stu[i].nid); printf("姓名:%s\n",stu[i].name); printf("成绩:%g\n",stu[i].score); return; } } printf("查无此人。\n"); } void del() { printf("请输入需要删除的学生学号:"); int id; scanf("%d",&id); for(int i=0;i<n;i++) { if(stu[i].nid == id) { for(int j=i;j<n-1;j++) { stu[j] = stu[j+1]; } n--; printf("删除成功。\n"); return; } } printf("查无此人。\n"); } void add() { printf("请输入学生学号、姓名和成绩:"); scanf("%d %s %f",&stu[n].nid,stu[n].name,&stu[n].score); n++; printf("添加成功。\n"); } void showmenu() { system("cls"); printf(" 欢迎使用学生管理系统\n\n"); printf(" 1、增加学生\n"); printf(" 2、删除学生\n"); printf(" 3、查询学生\n"); printf(" 4、排序学生\n"); printf(" 0、退出系统\n\n"); printf(" 请输入您的选择:"); } int main() { while(1) { showmenu(); int sel; scanf("%d",&sel); switch(sel) { case 1: add(); break; case 2: del(); break; case 3: query(); break; case 4: sort(); break; case 0: exit(0); } system("pause"); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报