pta c语言结构体数组处理
时间: 2023-12-21 11:30:31 浏览: 144
PTA C语言实验 部分答案.zip
针对pta c语言结构体数组处理,可以使用结构体数组来存储学生的信息,然后对学生的成绩进行求和和排序。下面是一个示例代码:
```c
#include <stdio.h>
struct student {
char name[20];
int score[3];
int sum;
};
void calc(struct student *p, int n) //求成绩总和
{
for(int i = 0; i < n; i++) {
p[i].sum = p[i].score[0] + p[i].score[1] + p[i].score[2];
}
}
void sort(struct student *p, int n) //对总成绩进行排序
{
struct student temp;
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n; j++) {
if(p[i].sum < p[j].sum) {
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
int main()
{
int n;
scanf("%d", &n);
struct student stu[n];
for(int i = 0; i < n; i++) {
scanf("%s %d %d %d", stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
calc(stu, n);
sort(stu, n);
for(int i = 0; i < n; i++) {
printf("%s %d %d %d %d\n", stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].sum);
}
return 0;
}
```
该代码中,首先定义了一个结构体`student`,包含了学生的姓名、三门课程的成绩和总成绩。然后定义了两个函数`calc`和`sort`,分别用于求总成绩和对学生按照总成绩进行排序。在`main`函数中,首先读入学生的信息,然后调用`calc`和`sort`函数进行处理,最后输出排序后的结果。
阅读全文