有N个学生,每个学生的数据包括学号、姓名、性别、三门课程的成绩。要求在主函数中输入数据,函数count()计算每个学生的总分和平均分,并输出各项数据,每一个学生输出后换行。(提示:定义结构体类型时,不仅要有三门课程的成绩,还要有总分和平均分;在调用count()函数时,函数的参数可以是结构体数组也可以是结构体指针)。定义符号常量N为4。 输入格式: 输入提示:"学号 姓名 性别 课1 课2 课3\n" 输入格式:"%ld%s %c%f%f%f" 输出格式: 输出提示: "学号 姓名 性别 课1 课2 课3 总分 平均分\n" 学号姓名性别的输出格式:"%8ld%10s%3c" 课程成绩的输出格式:"%6.1f"C语言编译
时间: 2024-03-19 12:40:51 浏览: 97
C语言实现学生成绩管理系统
5星 · 资源好评率100%
下面是一个示例代码,可以实现你所描述的功能:
```c
#include <stdio.h>
#define N 4
// 定义学生结构体
struct student {
long id;
char name[10];
char gender;
float score1;
float score2;
float score3;
float total_score;
float average_score;
};
// 计算学生总分和平均分的函数
void count(struct student *stu) {
for (int i = 0; i < N; i++) {
stu[i].total_score = stu[i].score1 + stu[i].score2 + stu[i].score3;
stu[i].average_score = stu[i].total_score / 3.0;
}
}
int main() {
// 定义学生数组
struct student stu[N];
// 输入学生数据
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生的数据(学号 姓名 性别 课1 课2 课3):\n", i+1);
scanf("%ld%s %c%f%f%f", &stu[i].id, stu[i].name, &stu[i].gender, &stu[i].score1, &stu[i].score2, &stu[i].score3);
}
// 计算每个学生的总分和平均分
count(stu);
// 输出学生数据
printf("学号\t姓名\t性别\t课1\t课2\t课3\t总分\t平均分\n");
for (int i = 0; i < N; i++) {
printf("%8ld\t%-10s\t%c\t%6.1f\t%6.1f\t%6.1f\t%6.1f\t%6.1f\n", stu[i].id, stu[i].name, stu[i].gender, stu[i].score1, stu[i].score2, stu[i].score3, stu[i].total_score, stu[i].average_score);
}
return 0;
}
```
这个程序定义了一个学生结构体,包含学号、姓名、性别、三门课程的成绩、总分和平均分。在主函数中输入数据后,调用了一个名为 `count` 的函数来计算每个学生的总分和平均分。最后输出每个学生的所有数据。
阅读全文