y a t-il un volontaire qui jette un coup d'oeuil sur ça

y a t-il un volontaire qui jette un coup d'oeuil sur ça - C - Programmation

Marsh Posté le 19-01-2006 à 23:03:46    

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<time.h>
 
 
long const it=100;
typedef struct liste{int val;
       liste *suivant;
        }liste;
 
liste *fusion(liste *g,liste *d)
{liste *scan,res;
 res.suivant=NULL,scan=&res;
 while (g!=NULL && d!=NULL)
 {if(g->val <= d->val)
  {scan=(scan->suivant=g);
 g=g->suivant;
  }
  else
  {scan=(scan->suivant=d);
 d=d->suivant;
  }
 }
 if(g!=NULL)
  scan->suivant=g;
 else
  scan->suivant=d;
 return(res.suivant);
}
 
liste *tri_fusion(liste *l,long n)
{FILE *fd;  long i,j=it/2;
 liste *scan,*prev=NULL,*m;
 clock_t t1, t2;
 fd = fopen("tri.txt","r" );
 if(fd==NULL)
  {
   printf("\nLecture impossible a partir du fichier !!!\n" );
  }
 else
 {  while(!feof(fd))
  {
  fscanf(fd,"%ld",&l->val);
  }
 }
 fclose(fd);
  t1= clock();
 
 for(i=0;i<it-1;i++)
{
 
 if(n>2)
 {for(m=l,i=j;i>0;m=m->suivant,i--)
  {prev =m;
  }
  prev->suivant=NULL;
  l=tri_fusion(l,j);
  m=tri_fusion(m,it-j);
  return(fusion(l,m));
 }
 else
 {if(n==2 && l->val>l->suivant->val)
  {l->suivant->suivant=l;
 l=l->suivant;
 l->suivant->suivant=NULL;
  }
  t2= clock();
 
 printf("temps d'execution du tri selection : %f secondes\n",(t2-t1)/CLK_TCK);
 }
 
 }
 
 return(l);
}
 
int main()
{
 long i; int n;
 FILE *fd;liste *l;
 fd = fopen("tri.txt","w" );
 for(i=0;i<it;i++)
 fprintf(fd,"%ld\n",random(it));
 fclose(fd);
 tri_fusion(l,n);
  getch();
 return(0);
}
dites moi,c'est juste ou non :hello:

Reply

Marsh Posté le 19-01-2006 à 23:03:46   

Reply

Marsh Posté le 19-01-2006 à 23:07:43    

j'attend une reponse

Reply

Marsh Posté le 19-01-2006 à 23:08:27    

Balises code pour commencer. Et donner quelque chose qui compile parce que vu la tête du programme, t'as pas besoin de conio.h ni de dos.h (sic).

Reply

Marsh Posté le 19-01-2006 à 23:11:44    

on peut ne pas utiliser dos.h,mais conio.h aidera dans l'instruction getch()

Reply

Marsh Posté le 19-01-2006 à 23:11:49    

et arrête de t'impatienter aussi parce qu'en 4 minutes...

Reply

Marsh Posté le 19-01-2006 à 23:13:24    

:pt1cable:  :lol:  :whistle: c'est le temps qui compte dans la vie

Reply

Marsh Posté le 19-01-2006 à 23:30:43    

ingainga a écrit :

on peut ne pas utiliser dos.h,mais conio.h aidera dans l'instruction getch()


 
En effet mais tu n'as pas besoin de "getch" pour programmer un tri fusion de listes chaînées. L'idéal comme tu débutes serait d'écrire un programme propre, en C standard (ANSI quant à faire). Je ne sais pas quel compilateur tu utilises mais poste un code qui compile avec les options de GCC "-ansi -pedantic" (en plus des options de warning).
 
Pour savoir si un programme est "juste" ou non, il suffit de voir s'il fonctionne comme tu l'attends en testant (tout le problème étant de savoir ce que tu considères comme un ensemble de tests valides).


Message édité par Profil supprimé le 19-01-2006 à 23:31:25
Reply

Marsh Posté le 19-01-2006 à 23:47:27    

Je refuse de lire un paquet de lignes non indentées.
 

ingainga a écrit :

:pt1cable:  :lol:  :whistle: c'est le temps qui compte dans la vie


 
Précisément la raison pour laquelle je ne lirais pas ton code mal écrit. [:itm]

Reply

Marsh Posté le 19-01-2006 à 23:54:27    

:sol: il parait que tu l'as déjà lu,sinon d'où viennent ces commentaires

Reply

Marsh Posté le 19-01-2006 à 23:57:02    

ingainga a écrit :

j'attend une reponse


:doigt:


Message édité par Emmanuel Delahaye le 19-01-2006 à 23:57:46

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 19-01-2006 à 23:57:02   

Reply

Marsh Posté le 20-01-2006 à 09:18:07    

ingainga a écrit :


dites moi,c'est juste ou non :hello:


 
bin heuh, t'as essayé de le compiler, de le lancer, et de regarder les résultats ?

Reply

Marsh Posté le 20-01-2006 à 10:19:18    

Si c'est le temps qui compte, tu prends les STL et tu fais ta liste avec tri en moins de temps qu'il te faut pour indenter ton code:-)

Reply

Sujets relatifs:

Leave a Replay

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