用c语言编写代码,代码功能是有3个学生,每个学生的数据包括学号,姓名,及三门课成绩,总成绩和平均成绩,从键盘输入3个学生的数据(包括学号,姓名及3门课成绩),要求打印出每位学生的学号,姓名,三门课的成绩,总成绩和平均成绩。 内容要求利用函数形式完成以下内容: (a)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组; (b)用input函数从键盘上输入3个学生的数据; (c)用average函数求出每个学生总成绩、平均成绩; (d)在主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩。
时间: 2024-01-02 21:02:57 浏览: 75
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
#define N 3 // 定义学生的数量
struct student { // 定义学生结构体
int id;
char name[20];
float score[3];
float total_score;
float average_score;
} stu[N]; // 定义学生数组
void input(struct student *p); // 输入学生信息函数
void average(struct student *p); // 计算学生平均成绩和总成绩函数
int main() {
int i;
input(stu); // 输入学生信息
average(stu); // 计算学生平均成绩和总成绩
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t总成绩\t平均成绩\n");
for (i = 0; i < N; i++) {
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[i].id, stu[i].name,
stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].total_score, stu[i].average_score);
}
return 0;
}
void input(struct student *p) {
int i, j;
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &p[i].id);
printf("姓名:");
scanf("%s", p[i].name);
for (j = 0; j < 3; j++) {
printf("成绩%d:", j + 1);
scanf("%f", &p[i].score[j]);
}
}
}
void average(struct student *p) {
int i, j;
for (i = 0; i < N; i++) {
p[i].total_score = 0;
for (j = 0; j < 3; j++) {
p[i].total_score += p[i].score[j];
}
p[i].average_score = p[i].total_score / 3;
}
}
```
在这个代码中,我们定义了一个 `student` 结构体类型,包含学生的学号、姓名、三门课成绩、总成绩和平均成绩。我们用一个 `input` 函数从键盘输入学生信息,用一个 `average` 函数计算每个学生的总成绩和平均成绩。在主函数中,我们输出每位学生的学号、姓名、三门课成绩、总成绩和平均成绩。
阅读全文