probleme dans mon programme

probleme dans mon programme - C - Programmation

Marsh Posté le 07-11-2004 à 17:35:57    

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. /*---------------------------------------------------------------------------------------------------------------------------------*/
  6. void main()
  7. {
  8. int j=0;
  9. int i=0;
  10. char *filename = "toto.dat";
  11. char numberC[20];
  12. double mat[4][3];
  13. double number = 0;
  14. int coef = 0,line = 0;
  15. FILE *file = NULL,*file2 = NULL;
  16. int c =0;
  17. int numberofflines=0;
  18. double *cologn;
  19. double comp;
  20. int l=0,k=0;
  21. double matcomp[5]={1,2,3,4,5};
  22. /****************************************/
  23. file = fopen (filename,"w" );
  24. if (file==NULL)
  25. {
  26.  printf("cannot open file '%s'\n",filename);
  27.  exit(0);
  28. }
  29. fprintf(file,"%f %f %f\n", 3.6 , 4.8 , 45.876);
  30. fprintf(file,"%f %f %f\n", 1.6 , 4.5 , 89.0);
  31.     fprintf(file,"%f %f %f\n", 7.63 , 1.2 , 0.56);
  32. fprintf(file,"%f %f %f\n", 5.7 , 8.8 , 0.5786);
  33. fclose(file);
  34. /*******************************************************/
  35. file2 = fopen(filename,"r" );
  36. if (file=NULL)
  37. {
  38.  printf("cannot open file '%s'\n",filename);
  39.  exit(0);
  40. }
  41. /*
  42. while( (c=fgetc(file2))!=EOF)
  43. {
  44.  if (c=='\n') numberofflines++;
  45.  printf(" nombre de lignes :%d\n",numberofflines);
  46. }
  47. ******************************************************/
  48. rewind(file2);
  49.     cologn=mat[0];
  50. while( (c=fgetc(file2))!=EOF)
  51. {
  52.  if ( (c!=' ') && (c != '\n'))
  53.  {
  54.   numberC[j++]=c;
  55.  }
  56.  else
  57.  {
  58.   numberC[j]='\0';
  59.   number = atof (numberC);
  60.   *(cologn)=number;
  61.   /*mat[line][coef]=number;*/
  62.   /*printf("number %f\n", number);*/
  63.  }
  64.  if (c==' ')
  65.  {
  66.   cologn++;
  67.   j = 0;
  68.  }
  69.  else if (c=='\n')
  70.  {
  71.   cologn++;
  72.   j=0;
  73.  }
  74. }
  75. fclose (file2);
  76. /******************************************************/
  77. for(i=0;i<4;i++)
  78. {
  79.  for( j=0;j<3;j++)
  80.  {
  81.   printf("le nombre de la ligne %d et colonne %d est %f\n",i+1,j+1,mat[i][j]);
  82.  }
  83. }
  84. /********************************************************/
  85. comp=mat[0][0];
  86. cologn=mat[0];
  87. for(k=0;k<5;k++)
  88. {
  89.  while (*cologn != number)
  90.  {
  91.   if (comp < *cologn)
  92.   {
  93.    for(l=0;l<k;l++)
  94.    {
  95.     printf(" matcomp%f",matcomp[l]);
  96.     if (comp != matcomp[l])
  97.     {
  98.      comp=*(cologn);
  99.      printf("le nouvo %f\n",comp);
  100.     }
  101.    }
  102.   }
  103.   cologn++;
  104.   printf("%f\n",*cologn);
  105.  }
  106.  printf(" le plus grd %f\n",comp);
  107.  matcomp[k]=comp ;
  108. }
  109. for (i=0;i<4;i++)
  110. {
  111.  printf("%f\n",matcomp[i]);
  112. }
  113. }


 
 
malgre le fait que j'ai definit matcomp au debut,il me retourne toujours la mem valeur.
merci de votre aide
 

Reply

Marsh Posté le 07-11-2004 à 17:35:57   

Reply

Marsh Posté le 07-11-2004 à 17:49:33    

tu peux pas utiliser fscanf comme tout le monde bordel :o
 
et après t'es gentil d'expliquer ton problème et de cibler l'endroit. et fais des fonctions

Reply

Marsh Posté le 07-11-2004 à 17:57:10    

mon probleme c'est que le test de la ligne 109 est toujours faux.
et le but est de prendre que les cinq plu grd nombre du tableau 2d

Reply

Marsh Posté le 07-11-2004 à 21:00:02    

C'est quoi ton compilateur ?

Reply

Marsh Posté le 07-11-2004 à 21:10:59    

je vois pas le rapport. il a tout simplement un problème d'algo perdu dans du code boueux

Reply

Marsh Posté le 08-11-2004 à 23:02:49    

Personnellement, j'aime bien la ligne 40...

Reply

Sujets relatifs:

Leave a Replay

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