从键盘输入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 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
- ¥15 ArcGIS批量裁剪
- ¥15 labview程序设计
- ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
- ¥15 Cloudreve保存用户组存储空间大小时报错
- ¥15 伪标签为什么不能作为弱监督语义分割的结果?
- ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
- ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
- ¥15 android 集成sentry上报时报错。
- ¥15 抖音看过的视频,缓存在哪个文件