#include <stdio.h> struct STU { char num[10]; float score[3]} ; void main() { struct STU s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}}, *p=s; int i; float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; printf("%6.2f\n",sum); }这题怎么做
时间: 2023-12-03 09:45:04 浏览: 1033
#include <stdio.h>
这是一道C语言的结构体题目,代码中定义了一个名为STU的结构体,其中包含一个学生的学号和三门课程的成绩。然后在main函数中定义了一个数组s,里面存放了3个学生的信息。接着定义了一个指向结构体数组的指针p,并将其指向数组s的首地址。最后计算了每个学生三门课程成绩的总和,并输出结果。
下面是完整的代码及注释解释:
```
#include <stdio.h>
// 定义一个名为STU的结构体,包含学生的学号和三门课程的成绩
struct STU {
char num[10]; // 学号
float score[3]; // 三门课程的成绩
};
void main() {
// 定义一个结构体数组s,里面存放了3个学生的信息
struct STU s[3] = {
{"20021", 90, 95, 85},
{"20022", 95, 80, 75},
{"20023", 100, 95, 90}
};
// 定义一个指向结构体数组的指针p,并将其指向数组s的首地址
struct STU *p = s;
int i;
float sum = 0;
// 计算每个学生三门课程成绩的总和
for (i = 0; i < 3; i++) {
sum = sum + p->score[0] + p->score[1] + p->score[2];
p++; // 指针p指向下一个结构体
}
// 输出总成绩
printf("%6.2f\n", sum);
}
```
需要注意的是,在计算每个学生三门课程成绩的总和时,需要使用指针p来访问结构体数组中每个结构体的成员变量。同时,在每次循环结束后,需要将指针p指向下一个结构体,以便下一次循环访问下一个学生的信息。
阅读全文