C A使用typedef结构设置值

C A使用typedef结构设置值,c,structure,typedef,C,Structure,Typedef,我在使用类型def stations与成员访问操作符一致编写代码时遇到了一些问题。我想分配我的结构定义变量的值,见下文。但每次我尝试一下,我都会沿着螺旋线走得更远,弄糊涂自己。我做错了什么?为什么这个程序不打印不同的值 #include <stdio.h> void outputDate(courseInfo course); typedef struct{ int year; int month; int day; }date; typedef str

我在使用类型def stations与成员访问操作符一致编写代码时遇到了一些问题。我想分配我的结构定义变量的值,见下文。但每次我尝试一下,我都会沿着螺旋线走得更远,弄糊涂自己。我做错了什么?为什么这个程序不打印不同的值

#include <stdio.h>

void outputDate(courseInfo course);

typedef struct{
    int year;
    int month;
    int day;
}date;

typedef struct{
    double avrage;
    int students;
    date start;
    date end;

}courseInfo;

int main(void){

    courseInfo course;
    course.avrage = 10;
    course.students=200
    course.start={17,17,17};
    course.end={16,16,16};


    outputDate();

    return 0;
}

void outputDate(courseInfo course){
    printf("avrage%d\n", course.avrage);
    printf("students%d\n", course.students);
    printf("start%d\n", course.start);
    printf("end%d\n", course.end);
    return;
}
#包括
无效输出日期(课程信息课程);
类型定义结构{
国际年;
整月;
国际日;
}日期;
类型定义结构{
双重平均;
国际学生;
开始日期;
日期结束;
}课程信息;
内部主(空){
课程信息课程;
course.avrage=10;
课程。学生=200
课程开始={17,17,17};
课程结束={16,16,16};
outputDate();
返回0;
}
无效输出日期(课程信息课程){
printf(“平均值%d\n”,course.avrage);
printf(“学生%d\n”,course.students);
printf(“开始%d\n”,课程开始);
printf(“结束%d\n”,课程结束);
返回;
}

start
是一个结构,而不是
int
,因此对格式代码使用
%d
将不起作用。
使用类似于

printf(“开始%d%d%d\n”,course.start.day,course.start.month,course.start.year)

除了printf问题,还应该将course变量传递给main中的outputDate()函数

outputDate(course);
固定式