2.试采用指向结构体的指针编写一程序,实现输入三个学生的学号、语文、数学成绩,然后计算各学生平均成绩并输出成绩表
时间: 2024-02-12 11:04:29 浏览: 38
好的,这是一份使用指向结构体的指针实现的代码,你可以参考一下:
```
#include <stdio.h>
struct student{
int id;
float chinese_score;
float math_score;
float average_score;
};
int main(){
struct student stu[3];
struct student *p = stu;
// 输入学生信息
for(int i = 0; i < 3; i++){
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &(p+i)->id);
printf("语文成绩:");
scanf("%f", &(p+i)->chinese_score);
printf("数学成绩:");
scanf("%f", &(p+i)->math_score);
// 计算平均成绩
(p+i)->average_score = ((p+i)->chinese_score + (p+i)->math_score) / 2.0;
printf("\n");
}
// 输出成绩表
printf("学号\t语文成绩\t数学成绩\t平均成绩\n");
for(int i = 0; i < 3; i++){
printf("%d\t%.2f\t\t%.2f\t\t%.2f\n", (p+i)->id, (p+i)->chinese_score, (p+i)->math_score, (p+i)->average_score);
}
return 0;
}
```
代码的思路是定义一个结构体 `student`,包含学生的学号、语文成绩、数学成绩和平均成绩。然后定义一个 `stu` 数组,存储三个学生的信息。再定义一个指向结构体的指针 `p`,指向 `stu` 数组的首地址。通过输入学生信息和计算平均成绩,最后输出成绩表。
希望这份代码可以帮到你!