用C语言编写:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 09:09:13 浏览: 69
好的,这是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 10
#define MAX_NAME_LEN 20
typedef struct student {
int id;
char name[MAX_NAME_LEN];
float scores[3];
float avg_score;
} Student;
void input_students(Student students[]) {
for (int i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%f", &students[i].scores[0]);
printf("成绩2:");
scanf("%f", &students[i].scores[1]);
printf("成绩3:");
scanf("%f", &students[i].scores[2]);
students[i].avg_score = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3.0;
}
}
void print_avg_score(Student students[]) {
float sum_score1 = 0, sum_score2 = 0, sum_score3 = 0;
for (int i = 0; i < MAX_STUDENTS; i++) {
sum_score1 += students[i].scores[0];
sum_score2 += students[i].scores[1];
sum_score3 += students[i].scores[2];
}
printf("成绩1的平均分数为:%.2f\n", sum_score1 / MAX_STUDENTS);
printf("成绩2的平均分数为:%.2f\n", sum_score2 / MAX_STUDENTS);
printf("成绩3的平均分数为:%.2f\n", sum_score3 / MAX_STUDENTS);
}
void print_top_student(Student students[]) {
int top_index = 0;
for (int i = 1; i < MAX_STUDENTS; i++) {
if (students[i].avg_score > students[top_index].avg_score) {
top_index = i;
}
}
printf("平均分数最高的学生是:\n");
printf("学号:%d\n", students[top_index].id);
printf("姓名:%s\n", students[top_index].name);
printf("成绩1:%.2f\n", students[top_index].scores[0]);
printf("成绩2:%.2f\n", students[top_index].scores[1]);
printf("成绩3:%.2f\n", students[top_index].scores[2]);
printf("平均分数:%.2f\n", students[top_index].avg_score);
}
int main() {
Student students[MAX_STUDENTS];
input_students(students);
print_avg_score(students);
print_top_student(students);
return 0;
}
```
这个程序使用了结构体来保存学生的数据,其中 `input_students()` 函数用于从键盘输入学生的数据, `print_avg_score()` 函数用于计算并打印出各门课程的平均分数, `print_top_student()` 函数用于找出平均分数最高的学生并打印出其数据。在 `main()` 函数中依次调用这三个函数即可完成程序的功能。
阅读全文