用c语言编写代码,有3个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入3个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩。 内容要求利用函数形式完成以下内容: (a)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组;
时间: 2023-12-26 13:20:28 浏览: 105
好的,根据您的要求,我编写了以下代码,实现了您的需求:
```c
#include <stdio.h>
// 定义学生结构体
struct Student {
int id; // 学号
char name[20]; // 姓名
float scores[3]; // 三门课成绩
float totalScore; // 总成绩
float averageScore; // 平均成绩
};
// 计算学生总成绩和平均成绩
void calculateScore(struct Student *student) {
float total = 0;
for (int i = 0; i < 3; i++) {
total += student->scores[i];
}
student->totalScore = total;
student->averageScore = total / 3.0;
}
int main() {
// 定义三个学生结构体
struct Student students[3];
// 从键盘输入学生数据
for (int i = 0; i < 3; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("三门课成绩:");
scanf("%f %f %f", &students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
// 计算学生总成绩和平均成绩
calculateScore(&students[i]);
}
// 打印每位学生的信息
printf("学生信息如下:\n");
for (int i = 0; i < 3; i++) {
printf("学号:%d,姓名:%s,三门课成绩:%.2f %.2f %.2f,总成绩:%.2f,平均成绩:%.2f\n",
students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2],
students[i].totalScore, students[i].averageScore);
}
return 0;
}
```
在这个代码中,我们首先定义了一个名为 `Student` 的结构体,它包括了学号、姓名、三门课成绩、总成绩和平均成绩。然后,我们在 `main` 函数中定义了一个数组,用于存储三个学生的信息。接下来,我们从键盘输入每个学生的信息,并通过 `calculateScore` 函数计算总成绩和平均成绩。最后,我们打印每位学生的信息。
希望这个代码可以帮助您解决问题!
阅读全文