我想用结构体从键盘输入十个学生的学号,姓名,三科学科成绩,然后输出他们三科成绩的平均值和成绩最高的学生的所有信息
时间: 2023-03-27 21:00:30 浏览: 132
可以的,以下是代码示例:
#include <stdio.h>
#define NUM 10 // 学生数量
struct Student {
int id; // 学号
char name[20]; // 姓名
float score[3]; // 三科成绩
};
int main() {
struct Student stu[NUM];
float avg[3] = {}; // 三科成绩平均值
int max_index = ; // 成绩最高的学生下标
// 输入学生信息
for (int i = ; i < NUM; i++) {
printf("请输入第%d个学生的学号、姓名、三科成绩:\n", i+1);
scanf("%d %s %f %f %f", &stu[i].id, stu[i].name, &stu[i].score[], &stu[i].score[1], &stu[i].score[2]);
// 计算平均值
avg[] += stu[i].score[];
avg[1] += stu[i].score[1];
avg[2] += stu[i].score[2];
// 找出成绩最高的学生
if (stu[i].score[] + stu[i].score[1] + stu[i].score[2] > stu[max_index].score[] + stu[max_index].score[1] + stu[max_index].score[2]) {
max_index = i;
}
}
// 输出平均值和成绩最高的学生信息
printf("三科成绩平均值为:%.2f %.2f %.2f\n", avg[]/NUM, avg[1]/NUM, avg[2]/NUM);
printf("成绩最高的学生信息为:\n");
printf("学号:%d\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("三科成绩:%.2f %.2f %.2f\n", stu[max_index].score[], stu[max_index].score[1], stu[max_index].score[2]);
return ;
}
阅读全文