从键盘输入5个学生的学号、姓名、数学成绩、语文成绩和英语成绩,要求计算并输出:(c语言,结构体)
(1)每门课的平均成绩;
(2)每个学生的平均成绩(输出学号、姓名、平均分)
(3)三门课总分最高的学生的数据(输出学号、姓名、3门课的成绩,三门课的总分)。
实验结果示例截图:
C语言,结构体:从键盘输入5个学生的学号、姓名、数学成绩、语文成绩和英语成绩,要求计算并输出:
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-深度学习进阶 2022-03-18 08:49关注
#include<stdio.h> #define N 5 struct student { int num; char name[10]; int course1; int course2; int course3; int total; }; //定义结构体类型 void main() { printf("请输入学生信息,以空格隔开\n"); printf("学号 数学 语文 英语 姓名\n"); struct student st[N]; //定义结构体变量 int i, max, maxi; float average1 = 0,average2 = 0,average3 = 0; for(i = 0; i < N; i++) { scanf("%d",&st[i].num); scanf("%d",&st[i].course1); average1 = average1 + st[i].course1; scanf("%d",&st[i].course2); average2 = average2 + st[i].course2; scanf("%d",&st[i].course3); average3 = average3 + st[i].course3; scanf("%s",st[i].name); st[i].total = st[i].course1 + st[i].course2 + st[i].course3; //求出当前学生的总分 } average1 = average1 / N; average2 = average2 / N; average3 = average3 / N; //求出各科平均分 max = st[0].total; for(i = 1; i < N; i++) if(st[i].total >= max) { max = st[i].total; maxi = i; } printf("三门课的平均成绩:\n"); printf("数学 语文 英语\n"); printf("%.2f %.2f %.2f\n",average1,average2,average3); printf("学号 姓名 平均分\n"); for(i = 0; i < N; i++) { printf("%d %s %.2f\n" , st[i].num , st[i].name , st[i].total/3.0); } printf("总分最高的学生:\n"); printf("学号 姓名 课程1 课程2 课程3 总分\n"); printf("%d %s %d %d %d %d\n" , st[maxi].num , st[maxi].name , st[maxi].course1 , st[maxi].course2 , st[maxi].course3 , st[maxi].total); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 11无用 1
悬赏问题
- ¥15 对于知识的学以致用的解释
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败