用c语言写出某学习小组有5个人,每个人信息包括姓名,学号,和一门课的成绩。要求从键盘上输入他们的信息,求出该门功课的小组平均成绩并输出,输出最高成绩者的完整信息
时间: 2025-02-23 15:32:30 浏览: 37
在C语言中,你可以使用结构体来存储每个学生的个人信息,并创建一个数组来表示整个学习小组。下面是一个简单的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
char name[50];
int student_id;
float score;
} Student;
// 函数声明
void input_student_info(Student group[], int num_students);
float calculate_average(float scores[], int num_scores);
void find_highest_score(Student group[], int num_students);
int main() {
const int GROUP_SIZE = 5; // 小组人数
Student students[GROUP_SIZE]; // 学生信息数组
// 输入每个学生的数据
input_student_info(students, GROUP_SIZE);
// 计算平均成绩
float average = calculate_average(&students[0].score, GROUP_SIZE);
printf("小组平均成绩为: %.2f\n", average);
// 找到最高分者的信息
find_highest_score(students, GROUP_SIZE);
return 0;
}
// 输入函数
void input_student_info(Student group[], int num_students) {
for (int i = 0; i < num_students; i++) {
printf("请输入学生 %d 的信息: \n", i + 1);
fgets(group[i].name, sizeof(group[i].name), stdin);
scanf("%d", &group[i].student_id);
scanf("%f", &group[i].score);
getchar(); // 消耗换行符
}
}
// 平均值计算函数
float calculate_average(float scores[], int num_scores) {
float sum = 0;
for (int i = 0; i < num_scores; i++)
sum += scores[i];
return sum / num_scores;
}
// 找最高分者函数
void find_highest_score(Student group[], int num_students) {
float max_score = group[0].score;
int max_index = 0;
for (int i = 1; i < num_students; i++) {
if (group[i].score > max_score) {
max_score = group[i].score;
max_index = i;
}
}
printf("最高分者信息: 姓名: %s, 学号: %d, 成绩: %.2f\n",
group[max_index].name, group[max_index].student_id, group[max_index].score);
}
```
当你运行此程序时,它会提示用户输入每个学生的姓名、学号和成绩,然后计算平均成绩以及找到最高分的学生信息。
阅读全文