A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

学生信息用一个结构体实现包括学号,姓名,性别,所选课程
所学课程为一个结构体里面包含数据结构,高数,思修,英语,绘画基础等等。。。。
主要是学生所选择的课程不一定一样,但是都是这些课程里面的某一些,该怎么弄

2 个回复

倒序浏览
想问下 学生信息里的 这个所选课程的数量是固定的吗?
回复 使用道具 举报
课程用数组不是更好么, 用结构体倒也可以实现, 不过遍历还是用了数组了.
  1. #include <stdio.h>

  2. typedef struct {
  3.     //数据结构,高数,思修,英语,绘画基础
  4.     int data;
  5.     int math;
  6.     int english;
  7.     int paint;
  8. } Course;

  9. typedef struct {
  10.     char * number;
  11.     char * sex;
  12.     Course course;
  13. } Student;

  14. Course makeCourse(int data, int math, int english, int paint)
  15. {
  16.     Course c;

  17.     c.data = data;
  18.     c.math = math;
  19.     c.english = english;
  20.     c.paint = paint;

  21.     return c;
  22. }

  23. Student makeStudent(char * number, char * sex, Course course)
  24. {
  25.     Student s;

  26.     s.number = number;
  27.     s.sex = sex;
  28.     s.course = course;

  29.     return s;
  30. }

  31. int main()
  32. {
  33.     char * coures[4] = { "data", "math", "english", "paint" };

  34.     Course c1 = makeCourse(0, 1, 0, 1);
  35.     int * p = (int *)&c1;
  36.     Student stu1 = makeStudent("01052001", "man", c1);
  37.     printf("学号:%s 性别:%s 所选课程有: ", stu1.number, stu1.sex);
  38.     for (int i = 0; i < 4; i++) {
  39.         if (*(p + i))
  40.             printf("%s    ", coures[i]);
  41.     }

  42.     printf("\n");

  43.     Course c2 = makeCourse(0, 1, 1, 1);
  44.     p = (int *)&c2;
  45.     Student stu2 = makeStudent("01052002", "woman", c2);

  46.     printf("学号:%s 性别:%s 所选课程有: ", stu2.number, stu2.sex);
  47.     for (int i = 0; i < 4; i++) {
  48.         if (*(p + i))
  49.             printf("%s    ", coures[i]);
  50.     }
  51.    
  52.     return 0;
  53. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马