C语言输入3个学生数据,每个学生的数据包括学号、姓名、3门课程的成绩,输出三门课程总平均成绩,以及最高分的学生数据,包括学号、姓名、3门课程平均成绩、平均分数
时间: 2024-09-25 10:08:00 浏览: 134
在C语言中,为了实现这个功能,你可以创建一个结构体来存储学生的信息,然后定义一个函数来获取用户输入并计算所需的统计信息。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
int student_id;
char name[50];
float score[3]; // 存放三门课程的成绩
} Student;
// 函数用于输入学生数据并计算平均成绩
void input_student_data(Student* student) {
printf("请输入学号: ");
scanf("%d", &student->student_id);
printf("请输入姓名: ");
fgets(student->name, sizeof(student->name), stdin); // 避免换行符
student->name[strcspn(student->name, "\n")] = '\0'; // 去除fgets后的换行符
for (int i = 0; i < 3; i++) {
printf("请输入第%d门课程的成绩: ", i+1);
scanf("%f", &student->score[i]);
}
}
// 计算平均成绩和最高分
void calculate_average_and_max(Student student[], int n) {
float total_avg = 0.0;
float max_score = student[0].score[0];
for (int i = 0; i < n; i++) {
total_avg += student[i].score[0] + student[i].score[1] + student[i].score[2];
if (student[i].score[0] > max_score) {
max_score = student[i].score[0];
}
}
total_avg /= 3.0;
printf("\n学生 %d 的三门课程平均成绩为 %.2f\n", student[0].student_id, total_avg);
printf("最高分学生是:\n");
printf("学号: %d, 姓名: %s\n", student[0].student_id, student[0].name);
printf("三门课程平均成绩: %.2f\n", max_score);
}
int main() {
Student students[3]; // 存储三个学生的信息
int num_students = 3;
for (int i = 0; i < num_students; i++) {
input_student_data(&students[i]);
}
calculate_average_and_max(students, num_students);
return 0;
}
```
当你运行这个程序时,它会提示用户输入每个学生的学号、姓名和三门课程的成绩,然后输出每名学生的平均成绩和最高分。
阅读全文