C语言编写程序,将输入的20名学生的成绩保存在数组中,编写函数max(),min(),ave()分别计算其最高分、最低分和平均分
时间: 2024-11-06 13:18:46 浏览: 18
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
在C语言中,为了实现这个功能,你需要首先定义一个数组来存储学生的成绩,然后创建三个函数`max()`、`min()`和`ave()`分别用于找到最高分、最低分和计算平均分。这里是一个简单的示例:
```c
#include <stdio.h>
#include <limits.h> // 包含最大值和最小值定义
// 定义结构体存储学生信息,包括姓名和成绩
typedef struct {
char name[50];
int score;
} Student;
// 函数声明
void input_scores(Student scores[], int num_students);
int max_score(Student scores[], int num_students);
int min_score(Student scores[], int num_students);
float calculate_average(Student scores[], int num_students);
int main() {
const int NUM_STUDENTS = 20; // 学生人数
Student scores[NUM_STUDENTS]; // 存储成绩的数组
// 获取并输入学生成绩
input_scores(scores, NUM_STUDENTS);
// 计算并输出结果
printf("最高分: %d\n", max_score(scores, NUM_STUDENTS));
printf("最低分: %d\n", min_score(scores, NUM_STUDENTS));
printf("平均分: %.2f\n", calculate_average(scores, NUM_STUDENTS));
return 0;
}
// 输入学生成绩到数组
void input_scores(Student scores[], int num_students) {
for (int i = 0; i < num_students; i++) {
printf("请输入第%d位学生的分数:", i+1);
scanf("%s %d", scores[i].name, &scores[i].score); // 输入姓名和分数
}
}
// 找到数组中的最大值
int max_score(Student scores[], int num_students) {
int max = INT_MIN;
for (int i = 0; i < num_students; i++) {
if (scores[i].score > max) {
max = scores[i].score;
}
}
return max;
}
// 找到数组中的最小值
int min_score(Student scores[], int num_students) {
int min = INT_MAX;
for (int i = 0; i < num_students; i++) {
if (scores[i].score < min) {
min = scores[i].score;
}
}
return min;
}
// 计算平均分
float calculate_average(Student scores[], int num_students) {
float sum = 0;
for (int i = 0; i < num_students; i++) {
sum += scores[i].score;
}
return sum / num_students;
}
```
阅读全文