某学习小组有5个人,每个人的信息包括学号和一门课的成绩。要求从键盘上输入他们的信息,求出该门功课的小组平均成绩,输出最高成绩者的完整信息,注意:分数最高的学生可能不止一个。c语言代码实现
时间: 2024-12-30 13:40:52 浏览: 5
为了实现这个功能,你可以使用C语言的基本结构来存储学生的数据,并通过循环遍历输入的数据计算平均分和找出最高分。下面是一个简单的示例代码:
```c
#include <stdio.h>
// 结构体来表示学生信息
typedef struct {
int id;
float score;
} Student;
// 函数声明
void input_students(Student students[], int size);
float calculate_average(Student students[], int size);
void find_highest_score(Student students[], int size);
int main() {
int num_of_students = 5; // 小组人数
Student students[num_of_students]; // 学生数组
// 输入学生信息
input_students(students, num_of_students);
// 计算平均分并输出
printf("小组平均成绩: %.2f\n", calculate_average(students, num_of_students));
// 找到最高分者并输出信息
find_highest_score(students, num_of_students);
return 0;
}
// 输入学生信息函数
void input_students(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("请输入第%d位同学的学号和成绩: ", i + 1);
scanf("%d%f", &students[i].id, &students[i].score);
}
}
// 计算平均分函数
float calculate_average(Student students[], int size) {
float total = 0;
for (int i = 0; i < size; i++) {
total += students[i].score;
}
return total / size;
}
// 查找最高分者函数
void find_highest_score(Student students[], int size) {
float max_score = students[0].score;
int max_index = 0;
for (int i = 1; i < size; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
max_index = i;
}
}
printf("最高分: %.2f 分 学号: %d, 姓名(这里假设每个学生都有姓名,但实际只有学号): %d\n",
max_score, students[max_index].id, students[max_index].id); // 如果需要显示姓名,需要在结构体中添加
}
```
阅读全文