Programme incomplet en Langage C

Résolu/Fermé
zikostyle Messages postés 2 Date d'inscription vendredi 27 février 2015 Statut Membre Dernière intervention 15 décembre 2016 - 25 mars 2015 à 12:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 15 mai 2015 à 23:43
Salut tous Le Monde , Je réalise un schéma de programme en langage C , mais il n'affiche pas l'étape finale . voici le Code


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>

struct date { int jour,mois,anne;
}data;

struct etudiant{
int ID;
char nom[10];
char prenom[10];
struct date data;
};

main(int argc , char* argv[])
{
int i,n;

printf("Entrez les Nombres des Etudiants \n \t");
scanf("%i",&n);

struct etudiant st[n];


for(i=0;i<n;i++){
printf("Entrez Le ID d Etudiant %i \n \t",i+1);
scanf("%i",&st[i].ID);

printf("Entrez Le Nom Etudiant \n \t",i+1);
scanf("%s",st[i].nom);


printf("Entrez Le Prenom d Etudiant \n \t",i+1);
scanf("%s",st[i].prenom);

printf("Entrez Date de naissance su stagiaire \n\t",i+1);

printf("\n Jour : ");
scanf("%d",&st[i].data.jour);

printf("\n Mois : ");
scanf("%ï",&st[i].data.mois);

printf("\n Anne : ");
scanf("%i",&st[i].data.anne);


}

for(i=0;i<n;i++){
printf("\n**************\n");

printf("Le ID : %i \n Nom : %s \n Prenom : %s ",i+1,st[i].ID,i+1,st[i].nom,i+1,st[i].prenom);
printf("\n %i / %i / %i",st[i].data.jour,&st[i].data.mois,&st[i].data.anne);

}
printf("\n**************\n");

getch();
}

2 réponses

pp25770 Messages postés 15 Date d'inscription samedi 8 septembre 2012 Statut Membre Dernière intervention 11 juin 2015 1
15 mai 2015 à 22:25
1) Tu as mis un %ï (i tréma) pour le mois et non un %i comme pour les autres.
2) Il y a trop de variable dans l'affichage de l'id, nom et prénom (les trois i+1 sont en en trop)
3) l'affichage du mois et année ne doit pas être précédé de &.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 15/05/2015 à 23:43
Bonjour,

main(int argc , char* argv[])
Le bon prototype est :
int main(...)

Et il ne faut pas oublier le
return 0;


struct etudiant st[n];
Cela fonctionne avec certains compilateurs C... Mais, il vaut mieux utiliser du malloc()...

scanf("%ï",&st[i].data.mois);
Attention, tu as mis un tréma sur le i.

printf("Le ID : %i \n Nom : %s \n Prenom : %s ",i+1,st[i].ID,i+1,st[i].nom,i+1,st[i].prenom);
printf("\n %i / %i / %i",st[i].data.jour,&st[i].data.mois,&st[i].data.anne);

Tu as mis i+1 partout, mais il n'y a pas les %i en face et des & devant les mois et annéees.
Peut-être plutôt :
printf("Etudiant %i : Le ID : %i \n Nom : %s \n Prenom : %s ",i+1,st[i].ID,st[i].nom,st[i].prenom);
printf("\n %i / %i / %i",st[i].data.jour,st[i].data.mois,st[i].data.anne); 


Cdlt,

Google is your friend
0