IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

probleme : recherche dichotomique


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Par défaut probleme : recherche dichotomique
    salut je veux faire une recherche dichotomique + un accès direct et mon fseek m e mene la vie dur savez vous m'eclairer ?? pour les puristes je c que c mal d'utiliser conio.h lol merci d'avance ; )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    #include <stdio.h>
    struct article
    {
    	int rec;
      	int no;
      };
    void main()
    {
       FILE *f;
       int i,j,k,sw,n,G,D,T,M;
       struct article data[100],tmp,recherche;
       long recno;
       i=0;
       f=fopen("carnet.dat","rb");
    	fread(&data[i],sizeof(struct article),1,f);
    	while(!feof(f))
    	{
       	i++;
    		fread(&data[i],sizeof(struct article),1,f);
       }
    	fclose(f);
       k=i-1;
       sw=0;
       while(k>=0 && sw==0)
       {
       	sw=1;
          for(j=0;j<i;j++)
          {
          	if(data[j].no>data[j+1].no)
             {
             	tmp=data[j];
                data[j]=data[j+1];
                data[j+1]=tmp;
                sw=0;
             }
          }
          k--;
       }
       j=0;
       while(j<i)
       {
       	printf(" %3d )  %8d no rec : %3d\n",j+1,data[j].no,data[j].rec);
          j++;
       }
       printf("\n\nle numero a rechercher > ");scanf("%d",&n);
       //recherche dichotomique
       T=0;
       G=0;
       D=j-1;
       while(T==0 && G<=D)
       {
       	M=(G+D)/2;
          if(n==data[M].no)
          {
          	T=1;
          }
          else
          {
          	if(n<data[M].no)
             {
             	D=M-1;
             }
             else
             {
             	if(n>data[M].no)
                {
                 G=M+1;
                }
             }
          }
       }
       if(T==1)
       {
       	f=fopen("carnet.dat","rb");
          recno=data[M].rec;
          fseek(f,recno,SEEK_SET);
     
          fread(&recherche,sizeof(struct article),1,f);
          printf("rec : %d nombre : %d",data[M].rec,recherche.no);
       }
       else
       {
       	printf("\n\n\n le numero rechercher est absent du fichier");
       }
       getch();
     
    }
    le resultat est zero pour le nombre rechercher ! en pieces jointes je vous fournis le celebre conio.h pour les utilisateurs de borland et peut etre des autres soit !
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/05/2008, 11h15
  2. Souvent j'ai le probleme (recherche de carractere...)
    Par GESCOM2000 dans le forum Access
    Réponses: 7
    Dernier message: 21/01/2006, 20h13
  3. Réponses: 23
    Dernier message: 10/01/2006, 13h33
  4. Recherche dichotomique
    Par remixtech dans le forum C
    Réponses: 4
    Dernier message: 06/01/2006, 18h39
  5. Recherche dichotomique
    Par Gryzzly dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 31/12/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo