2017-10-17 28 views
0

Je rencontre des problèmes en utilisant l'écriture de code en utilisant les déclarations de type def en accord avec l'opérateur d'accès membre. Je veux attribuer la valeur, voir ci-dessous, les variables définies par ma structure. Mais chaque fois que je l'essaie, je descends plus loin dans la spirale et je m'embrouille. Qu'est-ce que je fais mal? Pourquoi ce programme n'imprime-t-il pas les différentes valeurs?Alotation des valeurs à l'aide de struct 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

corrigez comme [this] (https://ideone.com/t2AXBn) – BLUEPIXY

Répondre

2

start est une structure, pas int, donc en utilisant %d pour le code de format ne fonctionnera pas.
Utilisez quelque chose comme
printf("start %d %d %d\n", course.start.day, course.start.month, course.start.year);

0

Outre le problème de printf, vous devez passer la variable de cours à la fonction outputDate() dans le principal.

outputDate(course);