2017-10-17 139 views
0

我在使用类型def statments与成员访问运算符一致时使用书写代码时遇到了一些问题。我想分配值,见下面,我的结构定义变量。但是,每次我尝试一下,我就会进一步下去,迷惑自己。我究竟做错了什么?为什么这个程序不打印不同的值?使用typedef结构化值结构

#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; 
} 
+0

修复如[this](https://ideone.com/t2AXBn) – BLUEPIXY

回答

2

start是一个结构,而不是一个int,因此使用%d的格式代码将不起作用。
使用类似
printf("start %d %d %d\n", course.start.day, course.start.month, course.start.year);

0

除了printf的问题,您应该在过程变量传递给outputDate()的主要功能。

outputDate(course);