请用c语言写一个结构体,要求能储存学生的姓名,所选修的课程,每个课程的成绩,学生的平均成绩
时间: 2023-06-10 19:06:57 浏览: 41
可以使用如下代码来定义一个结构体来储存学生的信息:
```c
#include <stdio.h>
#define MAX_COURSES 10
struct Student {
char name[50];
char courses[MAX_COURSES][50];
float grades[MAX_COURSES];
float average_grade;
};
int main() {
struct Student s;
// 填充学生信息
printf("请输入学生姓名:");
scanf("%s", s.name);
int num_courses;
printf("请输入选修课程数:");
scanf("%d", &num_courses);
printf("请输入选修课程及成绩:\n");
float total_grade = 0;
for (int i = 0; i < num_courses; i++) {
printf("课程 %d:", i+1);
scanf("%s %f", s.courses[i], &s.grades[i]);
total_grade += s.grades[i];
}
s.average_grade = total_grade / num_courses;
// 输出学生信息
printf("学生姓名:%s\n", s.name);
printf("选修课程及成绩:\n");
for (int i = 0; i < num_courses; i++) {
printf("%s:%.2f\n", s.courses[i], s.grades[i]);
}
printf("平均成绩:%.2f\n", s.average_grade);
return 0;
}
```
上述代码定义了一个 `Student` 结构体,其中包含学生的姓名、选修的课程、每个课程的成绩以及学生的平均成绩。在 `main` 函数中,我们通过 `scanf` 函数从用户输入中获取学生的信息,并计算出平均成绩。最后通过 `printf` 函数输出学生的信息。