有4个学生,每个学生的数据包括学号、姓名、3门课(高数、英语、物理)的成绩。
从键盘输入学生数据,添加如下功能:
(1)input函数从键盘输入学生数据;
(2)average函数计算3门课的成绩的平均分;
(3)print函数输出平均分大于80分的学生信息(包括学号、姓名、3门课的成绩、平均分);输出平均分最高的学生信息(包括学号、姓名、3门课的成绩、平均分)。
【样例输入】
please input 1 of 4
num:101
name:zhangsan
score 1:45
score 2:78
score 3:65
please input 2 of 4
num:102
name:lisi
score 1:70
score 2:80
score 3:90
please input 3 of 4
num:103
name:wangwu
score 1:75
score 2:85
score 3:95
please input 4 of 4
num:104
name: zhaoliu
score 1:60
score 2:65
score 3:70
【样例输出】
输出平均分大于80分的学生信息-----------------------------------
学号 姓名 高数 英语 物理 平均分
103 wangwu 75.00 85.00 95.00 85.00
输出平均分最高的学生信息-----------------------------------
学号 姓名 高数 英语 物理 平均分
103 wangwu 75.00 85.00 95.00 85.00
定义一个学生的数据结构数组,按要求封装函数和输出就可以了
typedef struct _student
{
int nid;
char name[20];
float gxscore;
float wlscore;
float yyscore;
float avg;
}student;
void input(student *stu, int n)
{
for (int i = 0; i < n; i++)
{
printf("请输入第%d个学生信息(学号 姓名 高数 英语 物理):", i + 1);
scanf("%d %s %f %f %f", &stu[i].nid, stu[i].name, &stu[i].gxscore, &stu[i].yyscore, &stu[i].wlscore);
}
}
void average(student *stu, int n)
{
for (int i = 0; i < n; i++)
{
stu[i].avg = (stu[i].gxscore + stu[i].yyscore + stu[i].wlscore) / 3;
}
}
void print(student *stu, int n)
{
printf("学号\t姓名\t高数\t英语\t物理\t平均分\n");
for (int i = 0; i < n; i++)
{
if(stu[i].avg > 80)
{
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n",stu[i].nid,stu[i].name,stu[i].gxscore,stu[i].yyscore,stu[i].wlscore,stu[i].avg);
}
}
printf("最高分:\n学号\t姓名\t高数\t英语\t物理\t平均分\n");
int k = 0;
for (int i = 1; i < n; i++)
{
if (stu[i].avg > stu[k].avg)
k = i;
}
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[k].nid, stu[k].name, stu[k].gxscore, stu[k].yyscore, stu[k].wlscore, stu[k].avg);
}
int main()
{
student stu[4];
input(stu, 4);
average(stu, 4);
print(stu, 4);
return 0;
}
请看这个搜索结果:c语言统计成绩- CSDN搜索
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632