用C语言编写程序,将输入的 20 名学生的成绩保存到数组中,求出其最高分、最低分及平均分。
时间: 2024-12-12 22:25:08 浏览: 72
在C语言中,你可以使用动态内存分配来创建一个能够容纳20名学生成绩的数组,并通过循环获取用户输入。然后,遍历数组找出最高分、最低分以及计算平均分。以下是步骤的一个简单示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体表示学生和成绩
typedef struct {
char name[20];
int score;
} Student;
int main() {
// 动态分配存储20名学生数据的空间
Student* students = (Student*)malloc(20 * sizeof(Student));
if (students == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
// 获取学生信息并保存到数组
for (int i = 0; i < 20; i++) {
printf("请输入第 %d 名学生的姓名和分数:\n", i + 1);
scanf("%s%d", students[i].name, &students[i].score);
}
// 初始化最大值和最小值为第一个元素的分数
int max_score = students[0].score;
int min_score = students[0].score;
// 遍历数组找到最高分和最低分
for (int i = 1; i < 20; i++) {
if (students[i].score > max_score)
max_score = students[i].score;
else if (students[i].score < min_score)
min_score = students[i].score;
}
// 计算平均分
float total = 0;
for (int i = 0; i < 20; i++)
total += students[i].score;
float average = total / 20.0;
// 输出结果
printf("最高分为:%d\n", max_score);
printf("最低分为:%d\n", min_score);
printf("平均分为:%.2f\n", average);
// 释放内存
free(students);
return 0;
}
阅读全文