[ C ] Problème dans mon programme

Problème dans mon programme [ C ] - C - Programmation

Marsh Posté le 06-11-2004 à 18:24:15    

Salut à tous,  
 
Cela fait maintenant quelques heures que je cherche le problème dans une fonction de mon programme :  
 
 
 
int lire_polynome(monome polynome[])
{
  int i=0;
  char choix,reponse;
 
  printf("Veuillez entrer vos monômes non nuls par degré croissant.\n" );
 
do
 
  {
   do
     {
 
      printf("\nQuel est le coefficient du monome ? " );
      scanf("%d", &polynome[i].coefficient);
 
      while(polynome[i].coefficient==0)
      {
        printf("Vous avez entrer un polynôme de coefficient nul.\n" );
        printf("Veuillez entrer un coefficient non nul : " );
        scanf("%d",&polynome[i].coefficient);
      }
 
      printf("Quel est l'exposant qui lui est associé? : " );
      scanf("%d", &polynome[i].exposant);
 
      while((i>0)&&(polynome[i].exposant <= polynome[i-1].exposant))
      {
       printf("\Désolé. Ce polynôme a un exposant plus petit ou égal au précédent.\n" );
       printf("Veuillez entrer un exposant plus grand que le précédant: " );
       scanf("%d",&polynome[i].exposant);
      }
 
      printf("\nVous avez entrez : %dX^%d, est-ce bien correct ? ",polynome[i].coefficient,polynome[i].exposant);
      scanf("%s",&reponse);
 
     }
    while(reponse != 'o');
 
    i=i+1;
    printf("Voulez vous entrer un autre monôme? (o/n) : " );
    scanf("%s", &choix);
 
 
  }  
 
while (choix != 'n');
 
return i;
}
 
 
 
 
Le problème dans cette fonction est que le "i" ne s'incrémente pas.  
Si quelqu'un pouvait m'aider en me disant quel pourrait etre le problème ...  
 
Je vous remercie d'avance  
@+

Reply

Marsh Posté le 06-11-2004 à 18:24:15   

Reply

Marsh Posté le 06-11-2004 à 18:35:23    

Met ton code dans des balises code.

Reply

Marsh Posté le 06-11-2004 à 18:58:01    

Puis faudrait le déclaration/définition de polynome.

Reply

Marsh Posté le 06-11-2004 à 19:10:12    

de monome, polynome est un tableau de monomes [:aloy]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-11-2004 à 22:43:41    

Définition/déclaration sont à prendre au sens « C » du terme :sarcastic:

Reply

Marsh Posté le 06-11-2004 à 22:49:12    

scanf("%s", &choix);  
 
 
hum, c'est bon de rentrer à la maison :)
 

Citation :

Le problème dans cette fonction est que le "i" ne s'incrémente pas.  

brûle un cierge, à moins que tu ne découvres un moyen plus simple...

Reply

Marsh Posté le 07-11-2004 à 02:35:05    

Code :
  1. #define d 100
  2. #include <stdio.h>
  3. #include <conio.h>
  4. typedef struct { int coefficient;
  5.                  int exposant;
  6.                } monome;
  7. void main()
  8. {
  9.   monome polynome[d+1];
  10.   monome k_derive[d+1];
  11.   int degre_derive,nbmonome;
  12.   int lire_polynome (monome[]);
  13.   void affiche_polynome (monome[],int);
  14.   void derive_polynome(monome[],monome[],int,int);
  15.   nbmonome=lire_polynome(polynome);
  16.   affiche_polynome(polynome,nbmonome);
  17.   printf("\nQuelle d%criv%ce voulez vous calculer ? ", 130, 130);
  18.   scanf("%d", &degre_derive);
  19.   derive_polynome(polynome,k_derive,nbmonome,degre_derive);
  20.   getch();
  21. }
  22. int lire_polynome(monome polynome[])
  23. {
  24.   int nbmonome=0;
  25.   char choix,reponse;
  26.   printf("Veuillez entrer vos mon%cmes non nuls par degr%c croissant.\n", 147, 130);
  27. do
  28.   {
  29.    do
  30.      {
  31.         printf("\nQuel est le coefficient du mon%cme ? ", 147);
  32.         scanf("%d", &polynome[nbmonome].coefficient);
  33.         while(polynome[nbmonome].coefficient==0)
  34.           {
  35.             printf("Vous avez entr%c un polyn%cme de coefficient nul.\n", 130, 147);
  36.             printf("Veuillez entrer un coefficient non nul : " );
  37.             scanf("%d",&polynome[nbmonome].coefficient);
  38.           }
  39.         printf("Quel est l'exposant qui lui est associ%c? : ", 130);
  40.         scanf("%d", &polynome[nbmonome].exposant);
  41.         while((nbmonome>0)&&(polynome[nbmonome].exposant <= polynome[nbmonome-1].exposant))
  42.           {
  43.             printf("\Désol%c. Ce polynôme a un exposant plus petit ou %cgal au précédent.\n", 130, 130);
  44.             printf("Veuillez entrer un exposant plus grand que le pr%cc%cdent: ", 130, 130);
  45.             scanf("%d",&polynome[nbmonome].exposant);
  46.           }
  47.         printf("\nVous avez entrez : %dX^%d, est-ce bien correct ? ", polynome[nbmonome].coefficient, polynome[nbmonome].exposant);
  48.         scanf("%s", &reponse);
  49.      }
  50.     while(reponse != 'o');
  51.     printf("Voulez vous entrer un autre mon%cme? (o/n) : ", 147);
  52.     scanf("%s", &choix);
  53.     nbmonome=nbmonome+1;
  54.   }
  55. while (choix != 'n');
  56. return nbmonome;
  57. }
  58. void affiche_polynome (monome polynome[],int nbmonome)
  59. {
  60.   int i;
  61.     for(i=0;i<nbmonome;i++)
  62.     {
  63.       if ( polynome[i].coefficient >0 && polynome[i].exposant !=0 )
  64.        printf("+%dX^%d",polynome[i].coefficient,polynome[i].exposant);
  65.        else
  66.        {
  67.         if ( polynome[i].coefficient < 0 && polynome[i].exposant !=0 )
  68.         printf("%dX^%d",polynome[i].coefficient,polynome[i].exposant);
  69.         else
  70.         {
  71.           if (polynome[i].exposant == 0)
  72.           printf("%d",polynome[i].coefficient);
  73.         }
  74.       }
  75.     }
  76. }
  77. void derive_polynome ( monome polynome[], monome k_derive[], int nbmonome, int degre_derive)
  78. {
  79.   int i;
  80.   monome derive_monome(monome,monome,int);
  81.   for(i=0;i<nbmonome+1;i++)
  82.   {
  83.     k_derive[i]=derive_monome(polynome[i],k_derive[i],degre_derive);
  84.   }
  85.   for(i=0;i<nbmonome+1;i++)
  86.   {
  87.     if ( k_derive[i].coefficient >0 && k_derive[i].coefficient !=0 )
  88.     printf("+%dX^%d",k_derive[i].coefficient,k_derive[i].exposant);
  89.     else
  90.     {
  91.      if ( k_derive[i].coefficient < 0 && k_derive[i].coefficient !=0 )
  92.      printf("%dX^%d",k_derive[i].coefficient,k_derive[i].exposant);
  93.      else
  94.         {
  95.           if (k_derive[i].exposant == 0 && k_derive[i].coefficient !=0)
  96.           printf("%d",polynome[i].coefficient);
  97.         }
  98.     }
  99.   }
  100. }
  101. monome derive_monome (monome polynome, monome k_derive, int degre_derive)
  102. {
  103.   int j;
  104.   k_derive.coefficient=polynome.coefficient;
  105.   k_derive.exposant=polynome.exposant;
  106.     if ( degre_derive>polynome.exposant )
  107.     {
  108.       k_derive.coefficient=0;
  109.       k_derive.exposant=0;
  110.     }
  111.     else
  112.     {
  113.       for(j=0;j<degre_derive;j++)
  114.       {
  115.         k_derive.coefficient = k_derive.coefficient*k_derive.exposant;
  116.         k_derive.exposant = (k_derive.exposant)-1;
  117.       }
  118.     }
  119.   return k_derive;
  120. }


 
 
Voici l'ensemble du code comme ca il n'y aura plus d'ambiguité
Le problème se situe dans la fonction qui est située un peu plus haut au niveau de l'incrémentation.

Reply

Marsh Posté le 07-11-2004 à 11:10:48    

t'as pas de touche é sur ton clavier :o

Reply

Sujets relatifs:

Leave a Replay

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