用C语言,定义一个1维数组,存放20个人的成绩,要求实现功能如下:1.输出这20个成绩;2.输出这20个成绩的平均值;3.输出及格的人数;4.输出不及格平均分;5.输出不及格人数;6.输出不及格的平均分;7.输出最高分;8.输出最低分
时间: 2024-11-03 10:13:15 浏览: 13
在C语言中,我们可以定义一个1维数组来存储20个人的成绩。首先,我们创建一个名为`scores`的整型数组,然后按照需求实现各个功能:
```c
#include <stdio.h>
#define NUM_STUDENTS 20
// 定义结构体,用于存放每个学生的姓名和成绩
typedef struct {
char name[20];
int score;
} Student;
int main() {
// 初始化学生数组,假设所有人的名字已知,仅存储分数
Student students[NUM_STUDENTS] = {{"张三", 90}, {"李四", 85}, ...}; // 填充其他18名学生的分数
// 输出所有成绩
printf("学生成绩列表:\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("%s: %d\n", students[i].name, students[i].score);
}
// 计算平均值
int total_score = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
total_score += students[i].score;
}
double average = (double)total_score / NUM_STUDENTS;
printf("平均分:%.2f\n", average);
// 判断及格(通常设及格线为60分)
int passed_count = 0;
double failed_average = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
if (students[i].score >= 60) {
passed_count++;
} else {
failed_average += students[i].score;
}
}
double failed_avg = failed_average / (NUM_STUDENTS - passed_count);
printf("及格人数:%d\n", passed_count);
printf("不及格平均分:%.2f\n", failed_avg);
// 找出最高分和最低分
int max_score = students[0].score, min_score = students[0].score;
for (int i = 1; i < NUM_STUDENTS; i++) {
if (students[i].score > max_score) {
max_score = students[i].score;
}
if (students[i].score < min_score) {
min_score = students[i].score;
}
}
printf("最高分:%d\n", max_score);
printf("最低分:%d\n", min_score);
return 0;
}
```
阅读全文