c语言利用数组实现:输入若干名学生的成绩,输入最高分,最低分和平均分
时间: 2024-10-29 13:16:33 浏览: 136
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,定义一个动态数组来存储学生的成绩,比如使用`float`类型的数组,因为成绩通常会是一个浮点数。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 10 // 假设最多有10个学生
float scores[MAX_STUDENTS]; // 存储成绩的数组
int num_students = 0; // 记录已输入的学生人数
```
2. 接下来创建一个函数来获取学生的成绩,直到用户选择停止输入。可以使用`scanf`来读取分数,并检查是否输入了合法的数字。
```c
void input_scores() {
while (num_students < MAX_STUDENTS) {
float score;
printf("请输入第 %d 名学生的成绩 (输入负数结束): ", num_students + 1);
scanf("%f", &score);
if (score < 0)
break;
scores[num_students] = score;
num_students++;
}
}
```
3. 创建函数来计算最高分、最低分和平均分。这里假设最高分和最低分是第一个和最后一个输入的分数。
```c
void calculate_stats() {
if (num_students == 0) {
printf("没有输入任何成绩。\n");
return;
}
float max_score = scores[0];
float min_score = scores[0];
float total_score = 0;
for (int i = 0; i < num_students; i++) {
total_score += scores[i];
if (scores[i] > max_score)
max_score = scores[i];
else if (scores[i] < min_score)
min_score = scores[i];
}
float average_score = total_score / num_students;
printf("最高分: %.2f\n", max_score);
printf("最低分: %.2f\n", min_score);
printf("平均分: %.2f\n", average_score);
}
```
4. 主程序中将以上部分整合起来,首先输入成绩,然后计算并显示统计信息。
```c
int main() {
input_scores();
calculate_stats();
return 0;
}
```
阅读全文