c语言写一个能录若干个同学的成绩的程序,要求有学号,姓名缩写,语文,数学,英语然后输出各科平均分,平均分最高的同学的信息(学号姓名等)。 注:若干指由用户决定。
时间: 2024-04-12 15:26:40 浏览: 13
以下是一个使用C语言编写的能录入若干个同学成绩并输出各科平均分和平均分最高同学信息的程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct Student {
char id[20];
char name[20];
float chinese;
float math;
float english;
};
int main() {
struct Student students[MAX_STUDENTS];
int numStudents;
float avgChinese = 0, avgMath = 0, avgEnglish = 0;
float maxAvgScore = 0;
struct Student maxAvgStudent;
printf("请输入学生人数:");
scanf("%d", &numStudents);
printf("请逐个输入学生信息:\n");
for (int i = 0; i < numStudents; i++) {
printf("学生%d的学号:", i + 1);
scanf("%s", students[i].id);
printf("学生%d的姓名缩写:", i + 1);
scanf("%s", students[i].name);
printf("学生%d的语文成绩:", i + 1);
scanf("%f", &students[i].chinese);
avgChinese += students[i].chinese;
printf("学生%d的数学成绩:", i + 1);
scanf("%f", &students[i].math);
avgMath += students[i].math;
printf("学生%d的英语成绩:", i + 1);
scanf("%f", &students[i].english);
avgEnglish += students[i].english;
printf("\n");
}
avgChinese /= numStudents;
avgMath /= numStudents;
avgEnglish /= numStudents;
printf("各科平均分:\n");
printf("语文:%.2f\n", avgChinese);
printf("数学:%.2f\n", avgMath);
printf("英语:%.2f\n", avgEnglish);
for (int i = 0; i < numStudents; i++) {
float avgScore = (students[i].chinese + students[i].math + students[i].english) / 3;
if (avgScore > maxAvgScore) {
maxAvgScore = avgScore;
maxAvgStudent = students[i];
}
}
printf("\n平均分最高的学生信息:\n");
printf("学号:%s\n", maxAvgStudent.id);
printf("姓名缩写:%s\n", maxAvgStudent.name);
printf("语文成绩:%.2f\n", maxAvgStudent.chinese);
printf("数学成绩:%.2f\n", maxAvgStudent.math);
printf("英语成绩:%.2f\n", maxAvgStudent.english);
return 0;
}
```
这个程序首先要求用户输入学生人数,然后逐个输入每个学生的学号、姓名缩写、语文、数学和英语成绩。接着,程序会计算各科平均分并输出。最后,程序会找出平均分最高的学生并输出其详细信息。