已知某班n名学生某门课程成绩,求出最高分、最低分、每个学生的平均成绩以及每个学生的成绩与平均分之差c语言任意值
时间: 2024-12-20 20:24:53 浏览: 0
在C语言中,为了计算班级学生的成绩统计信息,我们需要遍历数组并记录最高分、最低分、每个学生的平均成绩以及每个学生的成绩与平均分之差。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 用于处理整数数组
#define N 50 // 假设班级人数为50
// 结构体表示学生及其成绩
typedef struct {
int student_id;
float score;
} Student;
// 函数原型声明
void find_max_min(Student scores[], int n);
float calculate_average(Student scores[], int n);
void calculate_differences(Student scores[], int n);
int main() {
int n;
printf("请输入班级学生人数: ");
scanf("%d", &n);
// 学生成绩数组
Student students[N];
for (int i = 0; i < n; i++) {
printf("请输入第%d位学生的成绩: ", i + 1);
scanf("%f", &students[i].score);
}
// 找到最高分和最低分
find_max_min(students, n);
// 计算平均成绩
float average_score = calculate_average(students, n);
printf("平均成绩: %.2f\n", average_score);
// 计算每个学生的成绩与平均分之差
calculate_differences(students, n);
return 0;
}
// 寻找最大值和最小值
void find_max_min(Student scores[], int n) {
int max_index = 0, min_index = 0;
for (int i = 1; i < n; i++) {
if (scores[i].score > scores[max_index].score) {
max_index = i;
} else if (scores[i].score < scores[min_index].score) {
min_index = i;
}
}
printf("最高分: %.2f, 最低分: %.2f\n", scores[max_index].score, scores[min_index].score);
}
// 计算平均成绩
float calculate_average(Student scores[], int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i].score;
}
return sum / n;
}
// 计算成绩差
void calculate_differences(Student scores[], int n) {
for (int i = 0; i < n; i++) {
float difference = scores[i].score - calculate_average(scores, n);
printf("第%d位学生的成绩与平均分差: %.2f\n", i + 1, difference);
}
}
```
在这个程序中,我们首先输入学生的人数和成绩,然后分别通过`find_max_min`函数找出最高分和最低分,`calculate_average`计算平均成绩,最后`calculate_differences`函数计算每个学生的成绩与平均分之差。
阅读全文