Bonjour a tous,
Je me trouve face a une situation plutot difficile (pour moi xD); en effet je suis en train de travailler sur un programme, et dans celui-ci à un moment le programme dois interroger l'utilisateur concernant une nationalite, le seul probleme, et que je n'arrive pas a resoudre cela va de soi, c'est que lorsque j'execute le programme, au lieu de me demander cette fameuse nationalité, il fait directement impasse dessus et m'ecrit "code nationalite inconnu" comme dans le cas ou elle aurait ete non valavke; le seul hic etant ue je ne l'ai pas tapée ...
Je me permet de vous copier la source avec en gras le moment ou ce probleme apparait:
typedef char CH15[16];
typedef char CH2[3];
typedef char CH20[21];
typedef char CH10[11];
struct skieur { CH15 nom; CH2 nat;int doss; };
void main()
{
int nbp,doss,i;
skieur Tskieur[20];
CH20 nomlu;
CH2 nat;
CH2 codnat;
CH10 natio;
i=0;
nbp=0;
doss=0;
char r;
// --------------------- PHASE 1:LES INSCRIPTIONS ---------------------
printf("Entrez un nom de candidat\n" );
gets(nomlu);
printf("Entrez le code nationalite du candidat\n" );
gets(nat);
if(nomlu[0]!='*')
{
if(strcmp(nat,"FR" )!=0 && strcmp(nat,"IT" )!=0 && strcmp(nat,"LU" )!=0 && strcmp(nat,"PL" )!=0 && strcmp(nat,"CH" )!=0)
printf("LE CODE NATIONALITE %s EST INCONNU.\n VOTRE INSCRIPTION NE SERA PAS PRIS EN COMPTE.\n",nat);
for(i=0; i<=nbp; i=i+1)
{
if( strcmp(nomlu,Tskieur[i].nom)!=0 && strcmp(nat,Tskieur[i].nat)!=0 )//Test que le nom n'est pas deja present avec la nationalite entrée
{
i=i+1;
strcpy(nomlu,Tskieur[nbp].nom);
strcpy(nat,Tskieur[nbp].nat);
Tskieur[nbp].doss=nbp;
nbp=nbp+1;
}
else
printf("candidat deja enregistre\n" );
}//Fin du for
}
for(i=0;i<=nbp;i=i+1)
{
printf("%s \n %s \n %d\n",Tskieur[i].nom,Tskieur[i].nat,Tskieur[i].doss);
}
printf("Voulez-vous afficher les candidats par nationalité ? (O pour OUI et N pour NON) \n" );
r=getchar();
while(r='O')
{
printf("AFFICHAGE DES CANDIDATS\n" );
system("pause" );
printf("Entrez le code nationalite du candidat\n" );
gets(nat);
if(strcmp(nat,"FR" )!=0 && strcmp(nat,"IT" )!=0 && strcmp(nat,"LU" )!=0 && strcmp(nat,"PL" )!=0 && strcmp(nat,"CH" )!=0)
{
printf("LE CODE NATIONALITE %s EST INCONNU.\n ",nat);
}
if(codnat=="FR" )strcpy("FRANCE",natio);
if(codnat=="IT" )strcpy("ITALIE",natio);
if(codnat=="LU" )strcpy("LUXEMBOURG",natio);
if(codnat=="PL" )strcpy("POLOGNE",natio);
if(codnat=="CH" )strcpy("SUISSE",natio);
if(nbp=0)
printf("%s %s AUCUN INSCRIT\n",natio,codnat);
if(nbp>0)
{
for(i=0;i<=nbp;i=i+1)
{
if(strcmp(nat,Tskieur[i].nat)==0)
printf("%s %s %d\n",Tskieur[i].nom,Tskieur[i].nat,Tskieur[i].doss);//ecrire ausse le libelle nationalite
}
}
system("pause" );
}
// --------------------- FIN DE LA PHASE 1 ---------------------
system("pause" );
}//Fin du programme
Voila, sinon j'utilise Visual Studio 2005. Je suis désolé de copier un code comme ca, je sais que ce n'est pas tres lisible comme ca mais je suis vraiment a court de solutions.
Merci beaucoup de votre aide