Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1395 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Help au plus vite

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Help au plus vite

n°767832
cloud@ride​r
Quoi ? Quel chameau ?
Posté le 17-06-2004 à 17:12:00  profilanswer
 

Bonjours, nous avons un programme à rendre demain après midi, et nous sommes bloquer.
But : On doit faire une table de hachage (annuaire) et pouvoir aller chercher des infos dans cette table à l'aide d'une clef de hachage (Pour nous ordre alphabétique)
On récupère la première lettre taper par l'utilsateur, on soustrait 65 à la valeur de cette lettre ce qui nous donne un numero de case.
La table de hachage est composer d'un tableau (26 cases), chaque case du tableau contient une liste chainee avec dans chaque maillon une structure coportant les informations suivante (nom, prénom, adresse, n° tel).
Tout ceci est trier à partir d'un fichier texte de ce type :  
TEST michel 512 rue des grottes 0238569326
 
Chaque séparation est faite à l'aide de tabulation.
 
Merci de votre aide.

Citation :


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Malloc(int) (int*)malloc(sizeof(int))
#define maxi 255
 
typedef struct MAILLON
 {
  char nom;
  struct MAILLON *suiv;
 }maillon;
 
typedef maillon *liste_chainee;
typedef liste_chainee table[25];
 
void initialisation()
{
 int i=0;
 table Tab;
 for(i=0;i<=25; i++)
 {
  Tab[i]=NULL;
 }
}
 
void trie()
{
 FILE *f;
 char val[254];
 int n;
 f=fopen("C:\\annuaire.txt","r" );
 
 if(!f)
 {
  printf("\nerreur !! le fichier n'existe pas" );
  getch();
  exit(-1);
 }
 
 while(!feof(f))
 {
  fgets(val,255,f);
  n=val[1]-65;  //clef de hachage
  if(n<=25)
  {
   haching(n,val);  // permet de cree les listes chainee du tableau ou de cree de nouveau maillon si il existe une liste_ch
  }
 }
 fclose(f);
}
 
liste_chainee haching(int n, char v) ==> error 1 : Type mismatch in redeclaration of 'haching'
{
 liste_chainee L;
 maillon *pl, *dl;
 table t;
 
 if(t[n]==NULL)
 {
  pl=Malloc(maillon);
  pl->nom=v;
  pl->suiv=NULL;
  if(L==NULL)
  {
   L=pl;
  }
  else
  {
   dl->suiv=pl;
  }
  dl=pl;
 }
 else
 {
  L=inserer(L,v);
 }
 return L;
}
 
liste_chainee inserer(liste_chainee L, char v) // insertion d'un nouveau maillon ==> error 2 ; Type mismatch in redeclaration of 'inserer'
{
 maillon *nouveau, *parcour, *insere;
 nouveau=malloc(sizeof(maillon));
 nouveau->nom=v;
 insere=NULL;
 parcour=L;
 
 while(parcour!=NULL)
 {
  insere=parcour;
  parcour=parcour->suiv;
 }
 if(insere==NULL)
 {
  nouveau->suiv=L;
  L=nouveau;
 }
 else
 {
  nouveau->suiv=insere->suiv;
  insere->suiv=nouveau;
 }
 return L;
}
 
void recherche()
{
 char rch[20];
 maillon *tete;
 int n;
 char *tmp;
 char a[20];
 table t;
 
 printf("\nquel nom voulez-vous recherchez ???\n" );
 scanf("%c",&rch);
 n=rch[1]-65;   //clef de hachage
 if(n>25)
 {
  printf("\nTapez le nom en majuscule" );
  menu();
 }
 else
 {
  if(t[n]==NULL)
  {
   printf("\nle nom n'existe pas" );
   getch();
   menu();
  }
  else
  {
   while(tete!=NULL)
   {
 tmp=strdup(tete);  //On récupere ce qu'il y a dans tete
 a=strtok(tmp,"\t" );  // On prends le nom (jusqu'a la premiere tabulation) ==> error 4 : Lvalue required
 if(a==rch)
 {
  printf("\nvoici les infos demandes:\n %c",tmp);
  getch();
  menu();
 }
 else
 {
  printf("\nle nom n'existe pas" );
  getch();
  menu();
 }
   }
  }
 }
}
 
void menu() ==> error 3 : Type mismatch in redeclaration of 'menu'
{
 char a;
 printf("   RECHERCHE D'UN NOM\n" );
 printf("\n" );
 printf("\nvoulez-vous faire une recherche??? (tapez o)" );
 printf("\nvoulez-vous arr?ter la recherche??? (tapez n)\n" );
 scanf("%c",&a);
 if(a=='n')
 {
  getch();
  exit(-1);
 }
 else
 {
  recherche();
  getch();
 }
}
 
void main()
{
 printf("   GESTION D'UN ANNUAIRE PAR HACHAGE" );
 getch();
 nitialisation();
 trie();
 getch();
 menu();
 getch();
}
 

[#ff0e00][/#ff0e00][b][/b][g]


Message édité par cloud@rider le 17-06-2004 à 18:29:18
mood
Publicité
Posté le 17-06-2004 à 17:12:00  profilanswer
 

n°767850
Joel F
Real men use unique_ptr
Posté le 17-06-2004 à 17:20:02  profilanswer
 

elle est ou la question o_O ?

n°767865
Taz
bisounours-codeur
Posté le 17-06-2004 à 17:24:08  profilanswer
 

l'erreur est à la ligne 56

n°767877
HelloWorld
Salut tout le monde!
Posté le 17-06-2004 à 17:29:36  profilanswer
 

Je te débogue ça pour demain matin.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°767883
Taz
bisounours-codeur
Posté le 17-06-2004 à 17:31:29  profilanswer
 

moi je comprends le mélange de getch et de getchar, déjà ça peut que foirer
 
 
et la majorité des scanfs sont foirés

n°767905
cloud@ride​r
Quoi ? Quel chameau ?
Posté le 17-06-2004 à 17:42:31  profilanswer
 

merci HelloWorld

n°767979
cricri_
Posté le 17-06-2004 à 18:48:09  profilanswer
 

:pt1cable:   :lol:

n°767980
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2004 à 18:48:33  profilanswer
 

je regarde ça et je repasse demain


---------------
J'ai un string dans l'array (Paris Hilton)
n°767988
fabien
Vive la super 5 !
Posté le 17-06-2004 à 18:58:31  profilanswer
 

sont vraiment gentil ici :whistle:


---------------
Découvre le HFRcoin ✈ - smilies
n°767990
drasche
Posté le 17-06-2004 à 19:05:32  profilanswer
 

avec les balises [cpp] ça serait plus clair :jap:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
mood
Publicité
Posté le 17-06-2004 à 19:05:32  profilanswer
 

n°768007
cloud@ride​r
Quoi ? Quel chameau ?
Posté le 17-06-2004 à 19:34:43  profilanswer
 

merci aussi a toi Harkonnen

n°768145
el muchach​o
Comfortably Numb
Posté le 17-06-2004 à 23:32:45  profilanswer
 

HelloWorld a écrit :

Je te débogue ça pour demain matin.


Bon ben on compte sur toi et sur Harkonnen, hein ? [:itm]
Surtout ne nous décevez pas. :D


Message édité par el muchacho le 17-06-2004 à 23:33:07
n°768150
neogally
Battle Angel Alita
Posté le 17-06-2004 à 23:40:38  profilanswer
 

roh les michants  :love:

n°768255
cricri_
Posté le 18-06-2004 à 08:19:37  profilanswer
 

Bon ben y va être l'heure là ..  :whistle:

n°768275
jagstang
Pa Capona ಠ_ಠ
Posté le 18-06-2004 à 08:54:55  profilanswer
 

c'est pas 3615 DEBUG_A_DISTANCE ici


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°768335
gilou
Modérateur
Modzilla
Posté le 18-06-2004 à 09:46:40  profilanswer
 

> #define Malloc(int) (int*)malloc(sizeof(int))  
Beurk et inutile.
 
> #define maxi 255  
La pratique courante en C, c'est de noter les constantes preprocesseur avec des majuscules. Bon tu fais comme tu veux, mais ca ne facilite pas la relecture.
 

Citation :

typedef liste_chainee table[25];  
void initialisation()  
{  
int i=0;  
table Tab;  
for(i=0;i<=25; i++)  
{  
 Tab[i]=NULL;  
}  
}


Vas falloir que tu relises ton cours...
 

Citation :

char val[254];  
haching(n,val);  
liste_chainee haching(int n, char v) ==> error 1 : Type mismatch in redeclaration of 'haching'


 
etc etc.
A+,


Message édité par gilou le 18-06-2004 à 09:51:35

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°768437
HelloWorld
Salut tout le monde!
Posté le 18-06-2004 à 10:33:17  profilanswer
 

cloud@rider a écrit :

merci HelloWorld


Je blaguais... [:gowser]


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°768686
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 18-06-2004 à 12:11:42  profilanswer
 

cloud@rider a écrit :

[citation=767832,0,1][nom]cloud@rider a écrit[/nom]Bonjour, nous avons un programme à rendre demain après midi, et nous sommes bloqués.
But : On doit faire une table de hachage (annuaire) et pouvoir aller chercher des infos dans cette table à l'aide d'une clef de hachage (Pour nous ordre alphabétique)
On récupère la première lettre tapée par l'utilsateur, on soustrait 65 à la valeur de cette lettre ce qui nous donne un numero de case.
La table de hachage est composée d'un tableau (26 cases), chaque case du tableau contient une liste chainée avec dans chaque maillon une structure comportant les informations suivantes (nom, prénom, adresse, n° tel).
Tout ceci est trié à partir d'un fichier texte de ce type :  
TEST michel 512 rue des grottes 0238569326
 
Chaque séparation est faite à l'aide de tabulation.
 
Merci de votre aide.
 


 
de rien:jap:


Message édité par fodger le 21-06-2004 à 15:25:24
n°768765
jagstang
Pa Capona ಠ_ಠ
Posté le 18-06-2004 à 12:47:41  profilanswer
 

Fodger >> zélé


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°768952
cricri_
Posté le 18-06-2004 à 13:35:50  profilanswer
 

Bon, ben y a pu qu'à attendre la solution d'arko, en ASM ...  :pt1cable:   :D

n°768954
jagstang
Pa Capona ಠ_ಠ
Posté le 18-06-2004 à 13:36:48  profilanswer
 

faut coder en C correctement, ça suffira


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°769488
HelloWorld
Salut tout le monde!
Posté le 18-06-2004 à 18:38:04  profilanswer
 

Citation :

La table de hachage est composé d'un tableau


[:meganne]


Message édité par HelloWorld le 18-06-2004 à 18:38:17

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Help au plus vite

 

Sujets relatifs
Formulaire de sondage XHTML/CSS ! Help ![php] - Help avec fonction ereg() toujour et encore incompréhensible
Prob affichage image sur site perso free .. help pleaseHELP:probleme ASM mes commandes BSF PORTA,1 ne marche pas
Javascript et Flash... HELP!Problemes d erreurs en ADA pour un devoir à rendre Help
Problemes d erreurs en ADA pour un devoir à rendre Help[HELP] Comment bloquer les touches Windows & Ctrl Alt Supp ?
HELP : Présentation PowerPoint en plein écran sans Menu URGENT[C] Forger les paquets HELP
Plus de sujets relatifs à : [C] Help au plus vite


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR