nolimites Z'avez pas vu Mirza? | Bonjour,
je suis entrain de terminer un programme et il me reste à effectuer une fonction de recherche. J'ai utilisé un algo donné par mon prof qui fonctionne. J'ai juste dû l'adapté vu que ici j'ai droit à des chaines de caractères. Seul problème est que j'ai 7 warnings et que je ne parviens pas à les déchiffrer. Si vous saviez me traduire ca en language francais ce serait sympa
Voici le code:
Code :
- /************************************************************************/
- /* NOM: SIMONIS **** PRENOM: ARNAUD**************************************/
- /* GROUPE: 2125 *********************************************************/
- /* TRAVAIL: LC40 ********************************************************/
- /* DERNIERE MODIFICATION: 14/02/05 **************************************/
- /************************************************************************/
- #include<stdlib.h>
- #include<stdio.h>
- #include<conio.h>
- #include<string.h>
- //prototypes des fonctions
- void affichage(int, struct FICHE *);
- void encodage(int, struct FICHE *);
- void indexation(int, struct FICHE *, struct INDEX *);
- void tri(int, struct INDEX *);
- void affichage_index(int, struct FICHE *, struct INDEX *);
- void recherche(int, char, struct INDEX *,int *);
- //declaration de la structure fiche
- struct FICHE
- {
- char nom[20];
- int age;
- char info[50];
- };
- //declaration de la structure index
- struct INDEX
- {
- char nom[20];
- int indice;
- };
- /************************************************************/
- /* INPUT: nombre d'elements saisis, adresse du debut du */
- /* vecteur de la struct fiche */
- /* PROCESS: encode les infos dans la structure fiche */
- /* OUTPUT: / */
- /************************************************************/
- void encodage(int nbre_elem, struct FICHE *pt)
- {
- int i,j=0;
- for(i=0;i<nbre_elem;i++)
- {
- printf("------Fiche numero %d-----",i+1);
- printf ("\n\nVeuillez saisir le nom: " );
- fflush(stdin);
- gets(pt->nom);
- printf ("\nVeuillez saisir l'age: " );
- fflush(stdin);
- scanf ("%d",&pt->age);
- printf ("\nVeuillez saisir l'info: " );
- fflush(stdin);
- gets(pt->info);
- pt++;
- }
- }
- /************************************************************/
- /* INPUT: nombre d'elements saisis, adresse du debut du */
- /* vecteur de la struct fiche */
- /* PROCESS: affiche les infos de la structure fiche */
- /* OUTPUT: / */
- /************************************************************/
- void affichage(int nbre_elem, struct FICHE *pt)
- {
- int i;
- for(i=0;i<nbre_elem;i++)
- {
- printf("------Fiche numero %d-----",i+1);
- printf ("\nnom: " );
- puts (pt->nom);
- printf ("age: %d",pt->age);
- printf ("\ninfo: " );
- puts (pt->info);
- pt++;
- }
- }
- /************************************************************/
- /* INPUT: nombre d'elements saisis, adresse du debut du */
- /* vecteur de la struct fiche,adresse du debut du */
- /* vecteur de la struct index */
- /* PROCESS: cree le vecteur indexation */
- /* OUTPUT: / */
- /************************************************************/
- void indexation(int nbre_elem, struct FICHE *pt, struct INDEX *pt2)
- {
- int i;
- for(i=0;i<nbre_elem;i++)
- {
- strcpy (pt2->nom,pt->nom);
- pt2->indice = i;
- pt++;
- pt2++;
- }
- }
- /************************************************************/
- /* INPUT: nombre d'elements saisis, ,adresse du debut du */
- /* vecteur de la struct index */
- /* PROCESS: ordonne le vecteur indexation */
- /* OUTPUT: / */
- /************************************************************/
- void tri(int nbre_elem, struct INDEX *pt2)
- {
- int i,j,test,inser2;
- char inser[20];
- i=1;
- while(i<nbre_elem)
- {
- strcpy (inser,(pt2+i)->nom);
- inser2 = (pt2+i)->indice;
- j = i-1;
- test = strcmp(inser,(pt2+j)->nom);
- while (test < 0 && j>= 0)
- {
- strcpy ((pt2+(j+1))->nom,(pt2+j)->nom);
- (pt2+(j+1))->indice = (pt2+j)->indice;
- j = j-1;
- }
- strcpy ((pt2+(j+1))->nom,inser);
- (pt2+(j+1))->indice = inser2;
- i++;
- }
- }
- /************************************************************/
- /* INPUT: nombre d'elements saisis, adresse du debut du */
- /* vecteur de la struct fiche,adresse du debut du */
- /* vecteur de la struct index */
- /* PROCESS: affiche les fiches triees via le vecteur d'index*/
- /* OUTPUT: / */
- /************************************************************/
- void affichage_index(int nbre_elem, struct FICHE *pt, struct INDEX *pt2)
- {
- int i,j;
- for(i=0;i<nbre_elem;i++)
- {
- j = (pt2+i)->indice;
- //printf("\n------Fiche triee numero %d-----",i+1);
- printf("------Fiche numero %d-----",i+1);
- printf ("\nnom: " );
- puts ((pt+j)->nom);
- printf ("age: %d",(pt+j)->age);
- printf ("\ninfo: " );
- puts ((pt+j)->info);
- printf ("\nindice de tri: %d",j);
- }
- }
- void recherche(int nbre_elem, char cible,struct INDEX *pt2,int *pt_pos)
- {
- int i,comp;
- i = 1;
- comp = strcmp((pt2+i)->nom,cible);
- while(i < nbre_elem+1 && comp < 0)
- {
- i++;
- }
- if (comp = 0)
- pt_pos = i;
- else pt_pos = -1;
- }
- //Code principal
- void main()
- {
- //declaration des structures et pointeurs
- int choix,position=0,* pt_pos,k;
- struct FICHE tab[50], * pt;
- struct INDEX tab2[50], * pt2;
- int nbre_elem=0;
- char cible[20];
- pt = &tab[0];
- pt2 = &tab2[0];
- pt_pos = &position;
- do
- {
- system("cls" );
- printf("Veuillez faire votre choix parmis le menu suivant: " );
- printf("\n\n (1) Encodage de fiches" );
- printf("\n (2) Ajout de fiches" );
- printf("\n (3) Tri de fiches" );
- printf("\n (4) Affichage de fiches" );
- printf("\n (5) Recherche de fiches" );
- printf("\n (6) Quitter le programme" );
- printf("\n\nChoix (1-6): " );
- scanf ("%d",&choix);
- switch (choix)
- {
- case 1 :system("cls" );
- printf ("Combien de fiches voulez vous encoder? : " ); //encodage
- scanf ("%d", &nbre_elem);
- encodage(nbre_elem,pt);
- indexation(nbre_elem,pt,pt2);
- break;
- case 2 :system("cls" );
- printf ("none" ); //ajout
- break;
- case 3 :system("cls" );
- tri(nbre_elem,pt2); //tri
- break;
- case 4 :system("cls" );
- affichage_index(nbre_elem,pt,pt2);
- getch();
- //affichage(nbre_elem,pt); //affichage
- break;
- case 5 :system("cls" );
- printf ("Veuillez saisir la cible de la recherche: " );
- gets(cible);
- recherche(nbre_elem,cible,pt2,pt_pos); //recherche
- if (position = -1)
- printf("La cible n'a pas ete trouvee" );
- else
- {
- k = (pt2+position)->indice;
- printf ("\nnom: " );
- puts ((pt+k)->nom);
- printf ("age: %d",(pt+k)->age);
- printf ("\ninfo: " );
- puts ((pt+k)->info);
- }
- getch();
- break;
- case 6 :system("cls" );
- printf ("Vous venez de quitter le programme." ); //quitter
- break;
- default://system("cls" );
- printf ("Vous avez effectue un mauvais choix" );
- break;
- }
- }
- while (choix!=6);
- //appels des fonctions
- }
|
Voici les warnings:
Code :
- --------------------Configuration: lc41 - Win32 Debug--------------------
- Compiling...
- lc41.c
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(192) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'char '
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(192) : warning C4024: 'strcmp' : different types for formal and actual parameter 2
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(199) : warning C4047: '=' : 'int *' differs in levels of indirection from 'int '
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(201) : warning C4047: '=' : 'int *' differs in levels of indirection from 'const int '
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(261) : warning C4047: 'function' : 'char ' differs in levels of indirection from 'char [20]'
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(261) : warning C4024: 'recherche' : different types for formal and actual parameter 2
- C:\Documents and Settings\Cyg@ce\Mes documents\C\Seconde annee\Dossier\lc41.c(261) : warning C4761: integral size mismatch in argument; conversion supplied
- lc41.obj - 0 error(s), 7 warning(s)
|
Merci d'avance ![:) :)](https://forum-images.hardware.fr/icones/smile.gif) Message édité par nolimites le 23-02-2005 à 11:17:06
|