c语言如何将n个课程放入s学生的信息中,用结构体
时间: 2024-04-16 20:23:52 浏览: 10
你可以使用结构体来表示学生的信息和课程的信息,并使用数组来存储多个学生的信息。以下是一个示例代码:
```c
#include <stdio.h>
#define MAX_COURSES 10
#define MAX_STUDENTS 100
// 定义课程结构体
typedef struct {
char course_name[50];
int course_id;
} Course;
// 定义学生结构体
typedef struct {
char student_name[50];
int student_id;
Course courses[MAX_COURSES];
int num_courses;
} Student;
int main() {
Student students[MAX_STUDENTS];
int num_students;
printf("请输入学生人数:");
scanf("%d", &num_students);
// 输入每个学生的信息
for (int i = 0; i < num_students; i++) {
Student *s = &students[i];
printf("\n请输入学生姓名:");
scanf("%s", s->student_name);
printf("请输入学生ID:");
scanf("%d", &(s->student_id));
printf("请输入学生选修课程数目:");
scanf("%d", &(s->num_courses));
printf("请输入学生选修课程信息:\n");
for (int j = 0; j < s->num_courses; j++) {
Course *c = &(s->courses[j]);
printf("请输入课程名称:");
scanf("%s", c->course_name);
printf("请输入课程ID:");
scanf("%d", &(c->course_id));
}
}
// 输出每个学生的信息
printf("\n学生信息如下:\n");
for (int i = 0; i < num_students; i++) {
Student *s = &students[i];
printf("\n学生姓名:%s\n", s->student_name);
printf("学生ID:%d\n", s->student_id);
printf("学生选修课程数目:%d\n", s->num_courses);
printf("学生选修课程信息:\n");
for (int j = 0; j < s->num_courses; j++) {
Course *c = &(s->courses[j]);
printf("课程名称:%s\n", c->course_name);
printf("课程ID:%d\n", c->course_id);
}
}
return 0;
}
```
在上面的代码中,我们首先定义了两个结构体,分别为`Course`和`Student`。`Course`结构体表示课程的信息,包括课程名称和课程ID。`Student`结构体表示学生的信息,包括学生姓名、学生ID、选修的课程数组、选修课程的数目。在`main`函数中,我们使用数组`students`来存储多个学生的信息。
首先,我们通过用户输入获取学生的人数。然后,使用循环依次输入每个学生的姓名、ID、选修课程数目以及每门课程的信息。最后,使用另一个循环输出每个学生的信息。
这样,你就可以将n个课程放入s个学生的信息中了。