如何使用C语言编写一个程序,不使用指针,来接收四名学生的姓名和他们的三门课程成绩,然后计算并打印出每个学生的平均分数以及完整的学生成绩表?
时间: 2024-12-22 16:25:44 浏览: 9
在C语言中,可以不使用指针,通过结构体和数组结合来实现这个需求。首先,定义一个结构体`Student`存储学生信息,包括姓名和三门课的成绩。然后创建一个结构体数组来存储所有学生的信息。
```c
#include <stdio.h>
#include <string.h>
// 定义结构体
struct Student {
char name[50];
int scores[3]; // 存储三门课的成绩
};
int main() {
// 声明和初始化数组
struct Student students[4] = {
{"张三", {85, 92, 78}},
{"李四", {90, 88, 93}},
{"王五", {82, 86, 89}},
{"赵六", {95, 96, 90}}
};
// 计算并打印平均分
for (int i = 0; i < 4; i++) {
float avg_score = (students[i].scores[0] + students[i].scores[1] + students[i].scores[2]) / 3.0;
printf("%s 的平均分是 %.2f\n", students[i].name, avg_score);
}
// 打印完整成绩表
printf("\n学生学生成绩表:\n");
for (int i = 0; i < 4; i++) {
printf("学生 %d (%s): ", i+1, students[i].name);
for (int j = 0; j < 3; j++) {
printf("%d ", students[i].scores[j]);
}
printf("\n");
}
return 0;
}
```
在这个程序中,我们没有直接使用指针,而是通过数组间接地访问和操作数据。运行结果将显示每个学生的平均分数以及他们各门课程的具体成绩。
阅读全文