apres les listes chainées , c'est auour des FICHIERS ....

apres les listes chainées , c'est auour des FICHIERS .... - Programmation

Marsh Posté le 12-05-2002 à 09:23:35    

pour les fichier ,le but est de fusionner deux fichiers qui contiennent des entiers tries par ordre croissant  , et de creer un troisieme fichier  pour y placer les entiers des 2 fichiers dna s l'ordre croissant sans tenir compte des doubles:
 
mon programme ( qui marche !! )
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/* QUESTION 1 FICHIER */
 
void main(void)    {
 
 int i=0,j=0,res,a=0,b=0;
 int C,D,A,B,E,F;
 
 FILE *FS,*E1,*E2;
 
 /*E1=fopen("C:\\E1.TXT","w+t" );
 
 while(i!=7)    {
  scanf("%d",&C);
  fprintf(E1,"%d\n",C);
  i++;
 }
    fclose(E1);
 
 E2=fopen("C:\\E2.TXT","w+t" );
    while(j!=10)    {
  scanf("%d",&D);
  fprintf(E2,"%d\n",D);
  j++;
    }
    fclose(E2);*/
 
 E1=fopen("C:\\E1.TXT","r+t" );
 E2=fopen("C:\\E2.TXT","r+t" );
 FS=fopen("C:\\FS.TXT","w+t" );
 
    fscanf(E1,"%d\n",&A);
 fscanf(E2,"%d\n",&B);
 
    while (!feof(E1))     {
 
     if (A<B)    {
      fprintf(FS,"%d\n",A);
      feof(E1);
      fscanf(E1,"%d\n",&A);
     }
 
     else    {
      fprintf(FS,"%d\n",B);
      feof(E2);
      fscanf(E2,"%d\n",&B);
     }
 }
 
        if(A<B)    {
 
            fprintf(FS,"%d\n",A);
     fprintf(FS,"%d\n",B);
   }
 
 else    {
     fprintf(FS,"%d\n",B);
     fprintf(FS,"%d\n",A);
  }  
         while (!feof(E2))   {
  fscanf(E2,"%d\n",&E);
  fprintf(FS,"%d\n",E);
 }
 
 fclose(FS);
 fclose(E2);
 fclose(E1);
}
 
PS: je sais que mon prog n'est pas correct, il manque des conditions,....
 
Mais la ou je n'y arrive pas , c'est de modifier ce prog pour que les doudles soient supprimés automatiquement !!
 
 
Voici un exemple de ce qui se passerait:
 
E1: {2,4,4,6,10,10,12}
E2: {3,5,6,7,7,9,11,12,13,15}
=> FS: {2,3,4,5,6,7,9,10,11,12,13,15}
 
Ca doit pas etre compliqué mais g toujours pas trouvé!!
 
Aidez moi s'il vous plait !!!
 
Merci d'avance

Reply

Marsh Posté le 12-05-2002 à 09:23:35   

Reply

Marsh Posté le 13-05-2002 à 07:38:47    

tu mets tout dans un tableau en memoire et tu fais un qsort  :D  
ensuite tu vires les doublons (une bete boucle)
et tu ecris le resultat dans ton fichier en sortie
 
en plus ca ira bcp plus vite  :D

Reply

Marsh Posté le 13-05-2002 à 11:57:42    

merci d'avoir repondu  , mais je n'ai pas le droit d'utiliser les tableaux!!!

Reply

Marsh Posté le 13-05-2002 à 14:38:45    

bah tu prends une liste alors  ;)   :sarcastic:

Reply

Marsh Posté le 13-05-2002 à 14:50:48    

j'ai pas lu ton prog, mais tu gardes tout betement le dernier entier écrit, vu qu'ils sont dans l'ordre, t'as qu'a comparer avec celui-la avant d'écrire.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed