bug en exécution

bug en exécution - C - Programmation

Marsh Posté le 23-10-2010 à 23:33:22    

bonsoir,j'ai écris un code qui permet de remplir un tableau et sa taille est connu dés que l'utilisateur tape zero.
ensuite on calcule la moyenne,la variance,le min,le max et le nombre des elements inférieur à la moyenne.en exécutant ce programme,il bug juste aprés la saisie.j'ignore la raison.si vous pouvez bien m'aider :ange:  

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. int remplissage(float*tableau,float c,int p);
  5. float biggest_value(float* tableau, int taille,float* minmax);
  6. float inferieur(float* tableau,int n,float moy);
  7. float variance(float moy,int n,float v);
  8. int main()
  9. {
  10.     float minmax[2]={0},moy,var,v,inf;
  11.    int n, p;
  12.    float c;
  13.    float tableau[1000];
  14.     n=remplissage(tableau,c,p);
  15.     moy=biggest_value(tableau,p,minmax);
  16.     var=variance(moy,p,v);
  17.     inf=inferieur(tableau,p,moy);
  18.     printf("\n\nLe max est: %.0f\n\nle min est :%.0f\n\nla moyenne est : %.2f\n\nLa variance est : %.2f\n\nLe nombre de valeur inférieur à %.2f est : %.0f\n\n",minmax[0],minmax[1],moy,var,moy,inf);
  19.     system("pause" );
  20.     return 0;
  21. }
  22. float biggest_value(float* tableau, int n ,float* minmax)
  23. {
  24.     float somme=0;
  25.     int i;
  26.     minmax[1]=minmax[0]=tableau[0];
  27.     for (i=0;i<n;i++)
  28.     {
  29.         somme+= tableau[i];
  30.         if (minmax[0] < tableau[i])
  31.             minmax[0] = tableau[i];
  32.         if (minmax[1] > tableau[i])
  33.             minmax[1] = tableau[i];
  34.     }
  35.     return somme/n;
  36. }
  37. float inferieur(float* tableau,int n,float moy)
  38. {
  39.     float f=0;
  40.     int i;
  41.     for (i=0;i<n;i++)
  42.     {
  43.         if (moy>tableau[i])
  44.         f ++;
  45.     }
  46.         return(f);
  47. }
  48. float variance(float moy,int n,float v)
  49. {
  50.     v=(moy*moy)*n-((moy*moy)/n);
  51.     return(v);
  52. }
  53. int remplissage(float*tableau,float c,int p)
  54. {
  55.     int i=0;
  56. p=0;
  57. do
  58.     {
  59.         printf("entrer un chiffre :\n " );
  60.     scanf("%f",&c);
  61.    tableau[i]=c;
  62.    i++;
  63.     }
  64. while(c!=0);
  65.     if (c==0)
  66.      p=i;
  67.     return(p);
  68. }

Reply

Marsh Posté le 23-10-2010 à 23:33:22   

Reply

Marsh Posté le 24-10-2010 à 00:40:44    

Citation :

   moy=biggest_value(tableau,p,minmax);

Ben p n'a pas de valeur ici. Si c'est la valeur obtenue dans remplissage, elle a été retournée dans n et donc c'est moy=biggest_value(tableau,n,minmax); qu'il faudrait faire, ou alors faire p=remplissage(tableau,c,p); à la ligne d'avant.
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 24-10-2010 à 11:58:49    

man gdb

Reply

Marsh Posté le 24-10-2010 à 14:34:32    

merciii,j'ai pas fait attention!!!!

Reply

Sujets relatifs:

Leave a Replay

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