c语言计算平均成绩pta
时间: 2025-02-21 11:13:21 浏览: 89
### C语言 PTA 计算平均成绩实现方法
对于计算多个学生的平均成绩并处理特定条件下的输出,在C语言中可以通过定义结构体来存储学生的信息,并通过循环读取输入数据,进而计算总分和平均分。下面是一个基于给定需求的解决方案。
#### 定义结构体用于保存学生信息
首先,创建一个名为`Student`的结构体,用来储存每位同学的成绩详情:
```c
struct Student {
int num;
char name[20];
int score[3]; // 存储三门课程的成绩
float average; // 个人平均成绩
};
```
此部分设计遵循了对基本数据类型的合理运用[^1]。
#### 主要逻辑流程展示
接下来是完整的代码示例,展示了如何接收用户输入的数据、计算平均值以及根据要求筛选低于总体平均分的同学名单:
```c
#include <stdio.h>
#define MAX_STUDENTS 50
// 定义结构体类型 struct Student 来表示单个学生的信息
struct Student {
int num;
char name[20];
int score[3];
float aver;
};
void calculateAverage(struct Student *student) {
student->aver = (float)(student->score[0] + student->score[1] + student->score[2]) / 3;
}
int main() {
int n, totalScore = 0;
// 获取学生数量
scanf("%d", &n);
struct Student students[MAX_STUDENTS];
// 循环录入各名学生的具体资料及成绩
for (int i = 0; i < n; ++i) {
scanf("%d %s %d %d %d",
&(students[i].num),
students[i].name,
&(students[i].score[0]),
&(students[i].score[1]),
&(students[i].score[2]));
// 对当前记录的学生计算其平均成绩
calculateAverage(&students[i]);
// 同时累加所有人的得分以便稍后计算整体平均线
for (int j = 0; j < 3; ++j)
totalScore += students[i].score[j];
}
// 输出班级内所有成员各自的平均分数(保留两位小数)
printf("Individual averages:\n");
for (int i = 0; i < n; ++i)
printf("%.2f ", students[i].aver);
// 新起一行准备打印下一部分的内容
putchar('\n');
// 打印整个年级/班次的整体平均分数线
double classAvg = ((double)totalScore)/(n*3);
printf("Class Average Score: %.2lf\n", classAvg);
// 列举那些个体表现未达到集体平均水平者的名字及其编号
printf("Students below the class average:\n");
for (int i = 0; i < n; ++i)
if (students[i].aver < classAvg)
printf("%s %05d\n", students[i].name, students[i].num);
return 0;
}
```
上述代码实现了对学生基本信息与成绩的管理,包括但不限于获取输入、计算平均分等功能[^2]。
阅读全文
相关推荐




















