probleme insertion dans un tableau si pas d'occurence
Bonjour,
le but lire un nouveau nom et l'inscrire dans un tableau si le nom n'y est pas encore enregistrer.
sorti du programme avec la touche "x" ou 20 nom inscrits.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
//#include "stdafx.h"
#include "stdlib.h"
#include "string.h"
typedef char CH20[21];
typedef char CH15[16];
struct PERS {
CH20 nom;
int nb;
}PERS;
void main()
{
struct PERS TN[20];
int nbp=0;
int k;
CH20 nomlu;
strcpy(TN[0].nom,"premier");
printf( "ecrire un nom\n" );
gets (nomlu);
do
{
if ( strcmp (TN[0].nom,"premier")=0 )
strcpy (TN[0].nom,nomlu) && printf ("premier nom inserer\n");
else {
for ( k=nbp ; k<0 && strcmp( nomlu,TN[k].nom)<0 ; k=k-1 )
{
nbp=nbp+1 && strcpy ( TN[nbp].nom,nomlu ) && printf ("nom %d inserer\n",nbp);
if ( strcmp(TN[k].nom,nomlu)==0 )
{
("erreur nom deja inscrit\n");
}
}
nbp=nbp+1;
}
printf ( "ecrire un nom\n" );
gets ( nomlu );
//printf ("vous avez ecrit le nom suivant : %s\n",nomlu);
}
while ( nomlu[0]!='x' && nbp <20 );
printf ("vous avez note %d nom\n",nbp );
for ( k=0 ; k<nbp ; k=k+1 )
printf ("nom %s enregistrer\n",TN[nbp].nom);
return ;
} |
voici le rescultat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
exercise # ./test
ecrire un nom
fred
ecrire un nom
luc
ecrire un nom
momo
ecrire un nom
luc
ecrire un nom
x
vous avez note 4 nom
nom net enregistrer
nom net enregistrer
nom net enregistrer
nom net enregistrer
exercise # |
moi je voudrais ca :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
exercise # ./test
ecrire un nom
fred
ecrire un nom
luc
ecrire un nom
momo
ecrire un nom
luc
erreur non deja inscrit
ecrire un nom
x
vous avez note 3 nom
nom fred enregistrer
nom luc enregistrer
nom momo enregistrer
exercise # |
quelqu'un a une idée pour quoi mes test de nom dans le tableau ne fonctionne pas dans la boucle ?
merci
[/code]