Partage
  • Partager sur Facebook
  • Partager sur Twitter

zCoupure

2nd exercice de Mars 2010

    16 mars 2010 à 12:56:04

    bonjour,

    Citation : Lithren

    @Darkipod : Tu peux faire l'affichage et la décomposition en même temps. Et pour l'affichage, tu peux te passer de strcpy.



    code revue :
    #include <stdio.h>
    #include <stdlib.h>
    
    void Zcoupure(int valeur)
    {
        int coupure[7]={100,50,20,10,5,2,1};
        int fois;
        int i=0;
        printf("valeur a echanger : %d\n",valeur);
    
        while (valeur !=0)
        {
            //decomposition de la valeur
            fois=valeur / coupure[i];
            valeur= valeur % coupure[i];
    
            //affichage
            if (fois !=0)//pour ne pas afficher 0 fois quelque chose
            {
    
                if (i<5)
                {
                    // 0 à 4 ce sont les billets
                    if (fois>1)
                    {
                        printf ("%d X %d %s \n",fois,coupure[i],"billets");
                    }
                    else
                    {
                        printf ("%d X %d %s \n",fois,coupure[i],"billet");
                    }
                }
                else
                {
                    // 5 et 6 ce sont des pieces
                    if (fois>1)
                    {
                        printf ("%d X %d %s \n",fois,coupure[i],"pieces");
                    }
                    else
                    {
                        printf ("%d X %d %s \n",fois,coupure[i],"piece");
                    }
                }
    
    
    
            }
            i++;
        }
    }
    
    int main(void)
    {
        Zcoupure(867);
        return 0;
    }
    

    je gagne effectivement des boucles en moins, un tableau en moins.
    ^^
    juste une question pour la partie II : on peut choisir des coupures autres que :
    500 200 100 50 20 10 5 ?On donne le droit a l'utilisateur de choisir des coupures de 12€ ?
    • Partager sur Facebook
    • Partager sur Twitter
      16 mars 2010 à 13:35:27

      @À darkipod : Oui pour le niveau 2, la coupure est celle que l'on souhaite. Si le client veut un billet de 321€, il peut. La seule condition est que les pièces ont une valeur forcément plus petite que celle des billets.
      • Partager sur Facebook
      • Partager sur Twitter
        16 mars 2010 à 18:29:09

        Citation : Pouet_forever

        L'affichage fait partie de l'exercice ...
        Avec des réponses comme ça tu n'évolueras jamais ... la critique fait avancer en général, avec toi elle te fait reculer j'ai bien l'impression ...


        On s'en tape de l'affichage de cette fonction. Tu regardes l'ordre des appels de la fonction dans mon code.
        T'as raison je progresse pas. Tu remarqueras que mon code est toujours aussi dégueulasse qu'avant.

        Citation : GurneyH

        edit: Il y a une nuance, je sais ce que je fais. Ce n'est pas ton cas...;)


        C'est vrai que c'est pas évident de voir que les parenthèses sont inutiles surtout au return.
        Tu me fais la réflexion que mes parenthèses sont inutiles, tu fais la même chose ensuite...
        Mais en fait c'est pas la même chose puisque tu sais ce que tu fais (d'après ce que tu dis). Mais moi aussi je sais ce que je fais (note : oui ma première phrase c'était ironique) et tu le sais aussi (ou alors tu me prends vraiment pour un con, mais tsé un gros con).
        Conclusion : Nos parenthèses sont toutes inutiles, ainsi que ta remarque à propos du return, et celle où tu dis que je ne sais pas ce que je fais.
        Mais je comprends pas pourquoi tu as fais la réflexion du return, t'as posté sans réfléchir ? Sans savoir ce que tu faisais ? Tu sais pas quoi dire ?
        La même chose pour ta deuxième remarque ?
        • Partager sur Facebook
        • Partager sur Twitter
          16 mars 2010 à 18:49:51

          Ah, bah si on s'en tape de l'affichage ... Je vais demander une voiture jaune et on va me fournir une voiture verte, c'est pas grave c'est que l'affichage ... ... (même raisonnement à la con).
          Affirmatif, ton code est toujours aussi dégeulasse qu'avant.

          Pour les parenthèses de GurneyH c'est pour une question de clarté (bon comme tu dis ton code est toujours aussi dégeu donc tu peux pas comprendre).
          Et non tu ne sais pas ce que tu fais ... la preuve tu n'y arrives pas !
          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2010 à 19:00:59

            Citation : Pouet_forever

            Ah, bah si on s'en tape de l'affichage ... Je vais demander une voiture jaune et on va me fournir une voiture verte, c'est pas grave c'est que l'affichage ... ... (même raisonnement à la con).
            Affirmatif, ton code est toujours aussi dégeulasse qu'avant.

            Pour les parenthèses de GurneyH c'est pour une question de clarté (bon comme tu dis ton code est toujours aussi dégeu donc tu peux pas comprendre).


            Pour un code qui est pas fini, oui y'a encore plus raison de s'en taper.
            Si on doit espacer nos lignes de code d'une ligne de blanc, alors oui mon code est dégueulasse.

            Citation : Pouet_forever

            Et non tu ne sais pas ce que tu fais ... la preuve tu n'y arrives pas !


            Je fais du lait de vache t'en veux ?
            • Partager sur Facebook
            • Partager sur Twitter
              17 mars 2010 à 4:30:55

              Citation : Colb Seton


              Pour un code qui est pas fini, oui y'a encore plus raison de s'en taper.


              Eh bien, finis le ! Tu devrais bien finir par trouver un code sur le net. :)

              Citation : Colb Seton


              Si on doit espacer nos lignes de code d'une ligne de blanc, alors oui mon code est dégueulasse.


              Ne t'emportes pas! C'est un avis général sur ton(tes) code(s). Mais rassures-toi, les espaces entre les lignes n'ont rien à voir là-dedans.

              Et puis, on en reparlera lorsqu'il sera terminé... ;)


              • Partager sur Facebook
              • Partager sur Twitter
              Zeste de Savoir, le site qui en a dans le citron !
                18 mars 2010 à 2:55:44

                Ma tentative pour le niveau 3 (C'est un peu très complexe) :

                #include <stdio.h>
                #include <stdlib.h>
                #include <string.h>
                
                #define MAX_DIGITS 188
                
                typedef struct Coupure
                {
                    int *t_b;
                    int n_b;
                    int *t_p;
                    int n_p;
                } Coupure;
                
                void soustract(char *n1, char *n2)
                {
                    int i = 0, j = 0;
                    int n1_d = 0, n2_d = 0, res = 0;
                
                    for (i = strlen(n2)-1 ; i >= 0 ; i--)
                    {
                        n2_d = n2[i]-'0';
                        n1_d = n1[i]-'0'+j;
                        j = 0;
                        if (n2_d >= n1_d)
                            res = n2_d - n1_d;
                        else
                        {
                            res = n2_d+10 - n1_d;
                            j = 1;
                        }
                        n2[i] = res+'0';
                    }
                }
                
                void addZeros(char *s, int length)
                {
                    int n = strlen(s), j = strlen(s)-1;
                    int i = 0;
                
                    for (i = length-1 ; i >= 0 ; i--)
                    {
                        if (i >= length-n)
                        {
                            s[i] = s[j];
                            j--;
                        }
                        else
                            s[i] = '0';
                    }
                }
                
                void deleteZeros(char *s)
                {
                    int nZeros = 0, n = 0;
                    int i = 0, j = 0;
                
                    for (i = 0 ; s[i] == '0' ; i++)
                        nZeros++;
                
                    n = strlen(s)-nZeros;
                
                    for (i = 0, j = nZeros ; i < n ; i++, j++)
                        s[i] = s[j];
                    s[n] = '\0';
                }
                
                int isBigger(char *s1, char *s2)
                {
                    return (strlen(s1) > strlen(s2)) || ((strlen(s1) == strlen(s2)) && (strcmp(s1, s2) >= 0));
                }
                
                char* fill(int *eff, int *t, int n, char *s)
                {
                    int i = 0;
                    char value[MAX_DIGITS] = "";
                
                    while (i < n)
                    {
                        sprintf(value, "%d", t[i]);
                        deleteZeros(s);
                        if (isBigger(s, value))
                        {
                            eff[i]++;
                            addZeros(value, strlen(s));
                            soustract(value, s);
                        }
                        else
                            i++;
                    }
                    return s;
                }
                
                void zCoupure(char *s, Coupure coupure)
                {
                    int *eff_b = NULL, *eff_p = NULL;
                    int i = 0;
                
                    eff_b = calloc(coupure.n_b, sizeof(int));
                    eff_p = calloc(coupure.n_p, sizeof(int));
                
                    if (eff_b == NULL || eff_p == NULL)
                    {
                        perror("Erreur allocation de memoire");
                        exit(EXIT_FAILURE);
                    }
                
                    s = fill(eff_b, coupure.t_b, coupure.n_b, s);
                    s = fill(eff_p, coupure.t_p, coupure.n_p, s);
                
                    for (i = 0 ; i < coupure.n_b ; i++)
                        printf(eff_b[i] > 1 ? "%d billets de %d.\n" : "%d billet de %d.\n", eff_b[i], coupure.t_b[i]);
                    for (i = 0 ; i < coupure.n_p ; i++)
                        printf(eff_p[i] > 1 ? "%d pieces de %d.\n" : "%d piece de %d.\n", eff_p[i], coupure.t_p[i]);
                
                    free(eff_b), eff_b = NULL;
                    free(eff_p), eff_p = NULL;
                }
                
                int main(void)
                {
                    char s[MAX_DIGITS] = "";
                    int i = 0;
                    Coupure coupure = {NULL, 0, NULL, 0};
                
                    printf("Combien de types de billets ? ");
                    scanf("%d", &coupure.n_b);
                    printf("Combien de types de pieces ? ");
                    scanf("%d", &coupure.n_p);
                
                    coupure.t_b = malloc(coupure.n_b*sizeof(int));
                    coupure.t_p = malloc(coupure.n_p*sizeof(int));
                
                    if (coupure.t_b == NULL || coupure.t_p == NULL)
                    {
                        perror("Erreur allocation de memoire");
                        exit(EXIT_FAILURE);
                    }
                
                    printf("Les billets :\n");
                    for (i = 0 ; i < coupure.n_b ; i++)
                        scanf("%d", &coupure.t_b[i]);
                    printf("Les pieces :\n");
                    for (i = 0 ; i < coupure.n_p ; i++)
                        scanf("%d", &coupure.t_p[i]);
                
                    printf("Quelle somme voulez-vous ? ");
                    scanf("%s", s);
                    zCoupure(s, coupure);
                
                    free(coupure.t_b), coupure.t_b = NULL;
                    free(coupure.t_p), coupure.t_p = NULL;
                
                    return 0;
                }
                
                • Partager sur Facebook
                • Partager sur Twitter
                  20 mars 2010 à 17:47:14

                  Bonjour,
                  Je propose ma version de l'exercice zCoupure au niveau 1 et 2. Je suis débutant et je vous préviens tout de suite, mon code n'est pas très lisible. Je suis ouvert à toutes critiques. J'utilise les listes chainées. Ce code marche aussi avec les centimes (mais pas question d'utiliser les dixièmes de centimes, les centièmes de centimes...).

                  #include <stdio.h>
                  #include <stdlib.h>
                  
                  typedef struct Element Element;
                  struct Element
                  {
                      double nombre;
                      int monnaie;
                      Element *suivant;
                  };
                  
                  typedef struct Liste Liste;
                  struct Liste
                  {
                      int tailleListe;
                      Element *premier;
                  };
                  Liste *initialisation(double nb,int monnaie)
                  {
                      Liste *liste = malloc(sizeof(*liste));
                      Element *element = malloc(sizeof(*element));
                  
                      if (liste == NULL || element == NULL)
                      {
                          exit(EXIT_FAILURE);
                      }
                  
                      element->nombre = nb;
                      element->monnaie = monnaie;
                      element->suivant = NULL;
                      liste->premier = element;
                      liste->tailleListe = 1;
                  
                      return liste;
                  }
                  
                  void insertion(Liste *liste, double nvNombre, int monnaie, int nombreDiteration)
                  {
                      int i;
                      Element *nouveau = malloc(sizeof(*nouveau));
                      if (liste == NULL || nouveau == NULL)
                      {
                          exit(EXIT_FAILURE);
                      }
                  
                      if(nombreDiteration != 0)
                      {
                      Element *actuel = liste->premier;
                  
                      nombreDiteration --;
                  
                      for(i=0;i<nombreDiteration;i++)
                      {
                          actuel = actuel->suivant;
                      }
                  
                      nouveau->nombre = nvNombre;
                      nouveau->monnaie = monnaie;
                  
                      nouveau->suivant = actuel->suivant;
                      actuel->suivant = nouveau;
                      }
                      else{
                      nouveau->nombre = nvNombre;
                      nouveau->monnaie = monnaie;
                  
                      /* Insertion de l'élément au début de la liste */
                      nouveau->suivant = liste->premier;
                      liste->premier = nouveau;
                      }
                  liste->tailleListe++;
                  }
                  
                  Element* recupereElement(Liste *liste, int nombreDiteration)
                  {
                      int i;
                      if (liste == NULL)
                      {
                          exit(EXIT_FAILURE);
                      }
                  
                      Element *actuel = liste->premier;
                  
                      for(i=0;i<nombreDiteration;i++)
                      {
                          actuel = actuel->suivant;
                      }
                      return actuel;
                  }
                  
                  int zCoupure (double somme,int nbDiteration,Liste* liste)
                  {
                      int nbDelements=0;
                      Element *actuel = recupereElement(liste, nbDiteration);
                      nbDelements=somme/actuel->nombre;
                      if(actuel->monnaie==1)
                      {
                          if(actuel->nombre==100)
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d billets de %.2lf euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d billet de %.2lf euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else if(actuel->nombre<100 && actuel->nombre!=1)
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d billets de %.2lf centimes d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d billet de %.2lf centimes d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else if(actuel->nombre==1)
                              {
                              if(nbDelements>1)
                              {
                                  printf("%d billets de %.2lf centime d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d billet de %.2lf centime d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d billets de %.2lf euros.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d billet de %.2lf euros.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                      }
                      else
                      {
                          if(actuel->nombre==100)
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d pièces de %.2lf euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d pièce de %.2lf euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else if(actuel->nombre<100 && actuel->nombre!=1)
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d pièces de %.2lf centimes d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d pièce de %.2lf centimes d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else if(actuel->nombre==1)
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d pièces de %.2lf centime d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d pièce de %.2lf centime d'euro.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                          else
                          {
                              if(nbDelements>1)
                              {
                                  printf("%d pièces de %.2lf euros.\n",nbDelements,actuel->nombre/100);
                              }
                              else
                              {
                                  printf("%d pièce de %.2lf euros.\n",nbDelements,actuel->nombre/100);
                              }
                          }
                      }
                      if(actuel->suivant==NULL)
                      return 1;
                      else
                      return zCoupure (somme-(actuel->nombre*nbDelements),nbDiteration+1,liste);
                  }
                  
                  void initListe(Liste* liste)
                  {
                      Element *actuel = liste->premier;
                      int i;
                  
                      for(i=0;i<6;i++)
                      {
                         insertion(liste, 0,0, i+1);
                      }
                      actuel=actuel->suivant;
                      actuel->nombre=5000;
                      actuel->monnaie=1;
                      actuel=actuel->suivant;
                      actuel->nombre=2000;
                      actuel->monnaie=1;
                      actuel=actuel->suivant;
                      actuel->nombre=1000;
                      actuel->monnaie=1;
                      actuel=actuel->suivant;
                      actuel->nombre=200;
                      actuel->monnaie=0;
                      actuel=actuel->suivant;
                      actuel->nombre=100;
                      actuel->monnaie=0;
                      actuel=actuel->suivant;
                      actuel->nombre=1;
                      actuel->monnaie=0;
                  }
                  void viderBuffer()
                  {
                      int c = 0;
                      while (c != '\n' && c != EOF)
                      {
                          c = getchar();
                      }
                  }
                  void tri_insertion(Liste* liste, int taille)
                  {
                     int i, j,nb,mn;
                     for (i = 1; i < taille; ++i) {
                         int elem = recupereElement(liste, i)->nombre;
                         int monnaie = recupereElement(liste, i)->monnaie;
                         for (j = i; j > 0 && recupereElement(liste, j-1)->nombre >= elem; j--)
                             {
                             recupereElement(liste, j)->nombre = recupereElement(liste, j-1)->nombre;
                             recupereElement(liste, j)->monnaie = recupereElement(liste, j-1)->monnaie;
                             }
                         recupereElement(liste, j)->nombre = elem;
                         recupereElement(liste, j)->monnaie = monnaie;
                     }
                     j=taille-1;
                     for (i = 0; i < taille/2; i++)
                     {
                         nb=recupereElement(liste, i)->nombre;
                         mn=recupereElement(liste, i)->monnaie;
                         recupereElement(liste, i)->nombre=recupereElement(liste, j)->nombre;
                         recupereElement(liste, i)->monnaie=recupereElement(liste, j)->monnaie;
                         recupereElement(liste, j)->nombre=nb;
                         recupereElement(liste, j)->monnaie=mn;
                         j--;
                     }
                  }
                  int main()
                  {
                      Liste* elementRendus;
                      int init=0;
                      int nbBillets=0,nbPieces=0,i=0,p1=0,nb=0;
                      double somme=0,billet=0,piece=0;
                      char choix;
                      printf("Voulez vous choisir les piecès et les billets avec lesquels on va vous rendre la monnaie ?(o=oui,n=non) : ");
                      scanf("%c",&choix);
                      viderBuffer();
                      printf("\n");
                      if(choix=='o')
                      {
                          printf("Nombre de types de billets : ");
                          scanf("%d",&nbBillets);
                          viderBuffer();
                          printf("Nombre de types de pièces : ");
                          scanf("%d",&nbPieces);
                          viderBuffer();
                          for(i=0;i<nbBillets;i++)
                          {
                              printf("Billet %d : ",i+1);
                              scanf("%lf",&billet);
                              nb=billet*100;
                              billet=nb;
                              if(billet!=0)
                              {
                              if(billet==1)p1=1;
                              if(init==1)
                              {
                                  insertion(elementRendus, billet,1,0);
                              }
                              else
                              {init=1;
                              elementRendus=initialisation(billet,1);
                              }
                              }
                              else i--;
                              viderBuffer();
                          }
                          for(i=0;i<nbPieces;i++)
                          {
                              printf("Piece %d : ",i+1);
                              scanf("%lf",&piece);
                              nb=piece*100;
                              piece=nb;
                              if(piece!=0)
                              {
                              if(piece==1)p1=1;
                              if(init==1)
                              {
                                  insertion(elementRendus, piece,0,0);
                              }
                              else
                              {init=1;
                              elementRendus=initialisation(piece,0);
                              }
                              }
                              else
                              i--;
                              viderBuffer();
                          }
                      if (p1==0)
                      {
                          insertion(elementRendus, 1,0,0);
                          nbPieces++;
                      }
                      tri_insertion(elementRendus, nbBillets+nbPieces);
                      }
                      else{
                      elementRendus=initialisation(10000,1);
                      initListe(elementRendus);}
                      printf("Veuillez entrer la somme à retirer :");
                      scanf("%lf",&somme);
                      somme*=100;
                      viderBuffer();
                      zCoupure (somme,0,elementRendus);
                      return 0;
                  }
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 mars 2010 à 18:32:49

                    Citation : emmflo


                    Je suis débutant et je vous préviens tout de suite

                    :-°
                    Bah, listez chainée, tri insertion, récursion. o_O
                    Il t'aura fait bosser cet exo...

                    Tu pourras jeter un oeil aux autre codes, pour voir comment simplifier...
                    J'ai fait quelques tests, ça fonctionne.
                    Sinon les flottants,peuvent poser problèmes, notamment lors de comparaisons comme
                    if (piece!=0)
                    

                    C'est déconseillé.
                    Le formateur pour les double avec printf jusqu'en c90, c'est %f, pas %lf.

                    Aussi, je trouve dommage d'afficher
                    0 billet de ...

                    Autant ne pas afficher, non? ;)
                    Et attention aux caractères accentués dans la console.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Zeste de Savoir, le site qui en a dans le citron !
                      20 mars 2010 à 20:07:04

                      bonjour,
                      ma tentative pour l'etape II après 3 cachets d'aspirine :-°

                      #include <stdio.h>
                      #include <stdlib.h>
                      #include <string.h>
                      #define max 20
                      
                      void viderBuffer(void)// FONCTION EMPRUNTE A MATEO21 SUR LAAISIE SECURISE
                      {
                          int c=0;
                          while (c !='\n' && c!=EOF)
                          {
                              c=getchar();
                          }
                      }
                      
                      int lireInt (void)
                      {
                          int x;
                          int erreur=0;
                          while (erreur==0)// pour eviter de saisir un caractere
                          {
                          erreur=scanf("%d",&x);
                          if (erreur==0) {printf("Vous trompez pas saisissez un nombre ! RECOMMENCEZ\n");}
                          viderBuffer();// ici vider buffer
                          }
                          return x;
                      }
                      
                      
                      int triDecroissant(int tab[],int nb)
                      {
                          int min;
                          int i,j;
                          for (i=0;i<nb;i++)
                          {
                              for (j=i;j<nb;j++)
                              {
                                  if (tab[i]<tab[j])
                                  {
                                      //swap
                                      min=tab[i];
                                      tab[i]=tab[j];
                                      tab[j]=min;
                                  }
                              }
                          }
                          return min;
                      }
                      
                      
                      
                      void ZZcoupure(int valeur,int coupure[max],int Nbillet)
                      {
                          int fois=0;
                          int i=0;
                      
                          printf("valeur a echanger : %d\n",valeur);
                      
                          while (valeur !=0)
                          {
                              //decomposition de la valeur
                              fois=valeur / coupure[i];
                              valeur= valeur % coupure[i];
                      
                              //affichage du resultat
                              if (fois != 0)
                              {
                      
                                  if (i<Nbillet)
                                  {
                                      // 0 à Nbillet ce sont les billets
                                      if (fois>1)
                                      {
                                          printf ("%d X %d billets \n",fois,coupure[i]);
                                      }
                                      else
                                      {
                                          printf ("%d X %d billet \n",fois,coupure[i]);
                                      }
                                  }
                                  else
                                  {
                                      // > à Nbillet ce sont des pieces
                                      if (fois>1)
                                      {
                                          printf ("%d X %d pieces \n",fois,coupure[i]);
                                      }
                                      else
                                      {
                                          printf ("%d X %d piece \n",fois,coupure[i]);
                                      }
                                  }
                              }
                      
                              i++;
                          }
                      
                      }
                      
                      
                      void Zcoupure(int valeur)
                      {
                          int coupure[max];
                          int Nbillet;
                          int Nmonnaie;
                          int min;
                          int i;
                          printf("Combien de billet ? :");
                          Nbillet =lireInt();
                          printf("entrer vos coupures de billets \n");
                          printf("______________________________ \n");
                          for (i=0;i<Nbillet;i++)
                          {
                              printf("coupure numero %d :",i+1);
                              coupure[i]=lireInt();
                          }
                      
                          printf("Combien de pieces ? :");
                          Nmonnaie =lireInt();
                          printf("entrer vos valeurs de monnaie \n");
                          printf("______________________________ \n");
                          for (;i<Nbillet+Nmonnaie;i++)
                          {
                              printf("valeur de la piece numero %d :",i+1-Nbillet);
                              coupure[i]=lireInt();
                          }
                          // contrainte classe le tableau par ordre croissant
                          min=triDecroissant(coupure,Nbillet+Nmonnaie);
                          ZZcoupure(867,coupure,Nbillet);
                      }
                      
                      
                      int main(void)
                      {
                          Zcoupure(867);
                          return 0;
                      }
                      
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 mars 2010 à 20:18:42

                        @darkipod: je regarderais un peu plus tard.

                        J'ai juste parcouru.
                        Il existe une fonction de tri dans la lib standard -> qsort.

                        Son prototype est un peu compliqué de prime abord, mais c'est une bonne occasion pour l'essayer. ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Zeste de Savoir, le site qui en a dans le citron !
                          20 mars 2010 à 21:48:03

                          Voilà mon essai pour l'exo n°1 :

                          #include <stdio.h>
                          #include <stdlib.h>
                          
                          #define N_BIL 3
                          #define N_PCS 2
                          
                          int calcul(int x, int * tab, int sz, char * s) {
                          	int i;
                          	
                          	for (i = 0; i < sz && x > 0; i++) {
                          		div_t reste = div(x, tab[i]);
                          		
                          		if (reste.quot != 0) {
                          			printf("%d %s", reste.quot, s);
                          			if (reste.quot > 1)
                          				putchar('s');
                          			printf(" de %d€.\n", tab[i]);
                          		}
                          		x = reste.rem;
                          	}
                          	
                          	return x;
                          }
                          
                          void zcoupure(int x) {
                          	int billet[N_BIL] = { 100, 50, 10 };
                          	int pieces[N_PCS] = { 2, 1 };
                          	
                          	x = calcul(x, billet, N_BIL, "billet");
                          	x = calcul(x, pieces, N_PCS, "piece");
                          }
                          
                          int main(void) {
                          	int x = 224;
                          	zcoupure(x);
                          	return EXIT_SUCCESS;
                          }
                          

                          J'attend vos commentaires. :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 mars 2010 à 21:58:26

                            Citation : Pouet_Forever


                            J'attend vos commentaires. :)



                            Pas de problèmes...
                            Ah si, on doit pouvoir le faire au chapitre 1 du tuto.
                            Sans tableaux. :diable:

                            Non, non, pas de problèmes. Certains te reprocheront l'absence de const ici
                            int calcul(int x, int * tab, int sz, char * s)
                            

                            mais si tu l'avais mis on te l'aurait reproché. ;)

                            @darkipod:
                            Ca semble pas mal, juste
                            int i = 0;
                            
                            for (i; i < sz && x > 0; i++)
                            

                            Tu devrais oublier cette forme...

                            for (i = 0; i < sz && x > 0; i++)
                            

                            Est bien plus jolie.;)
                            La forme précédente te feras faire des erreurs, surtout dans le cas de boucle imbriquée.
                            Initialise dans le for, c'est une bonne habitude à prendre.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Zeste de Savoir, le site qui en a dans le citron !
                              20 mars 2010 à 22:02:32

                              Sans tableaux mais combien de variables ? :lol:
                              Je vais pouvoir attaquer le n°2 !

                              En fait pourquoi personne ne veut faire le n°1 ? trop facile ? lol

                              Edit : Voilà ma proposition pour le 2 :

                              #include <stdio.h>
                              #include <stdlib.h>
                              
                              int calcul(int x, int * tab, int sz, char * s) {
                              	int i;
                              	
                              	for (i = 0; i < sz && x > 0; i++) {
                              		div_t reste = div(x, tab[i]);
                              		
                              		if (reste.quot != 0) {
                              			printf("%d %s", reste.quot, s);
                              			if (reste.quot > 1)
                              				putchar('s');
                              			printf(" de %d€.\n", tab[i]);
                              		}
                              		x = reste.rem;
                              	}
                              	
                              	return x;
                              }
                              
                              int demander_cmb(int *(*tab), char * s) {
                              	int i, n;
                              	
                              	printf("Combien de types de %ss ? ", s);
                              	scanf("%d", &n);
                              	
                              	if ((*tab = malloc(n * sizeof *(*tab))) == NULL) {
                              		fprintf(stderr, "Erreur d'allocation");
                              		exit(EXIT_FAILURE);
                              	}
                              	
                              	for (i = 0; i < n; i++) {
                              		printf("%s n° %d : ", s, i+1);
                              		scanf("%d", &(*tab)[i]);
                              	}
                              	return n;
                              }
                              
                              int compar(const void * ag1, const void * ag2) {
                              	int n1 = * (int const *) ag1;
                              	int n2 = * (int const *) ag2;
                              	
                              	if (n1 > n2)
                              		return -1;
                              	else if (n1 < n2)
                              		return 1;
                              	else
                              		return 0;
                              }
                              
                              void zcoupure(int x) {
                              	int * billet = NULL;
                              	int * pieces = NULL;
                              	
                              	int n_bil = demander_cmb(&billet, "billet");
                              	int n_pcs = demander_cmb(&pieces, "piece");
                              	
                              	qsort((void*) billet, n_bil, sizeof * billet, compar);
                              	qsort((void*) pieces, n_pcs, sizeof * pieces, compar);
                              	
                              	x = calcul(x, billet, n_bil, "billet");
                              	x = calcul(x, pieces, n_pcs, "piece");
                              	
                              	free(billet);
                              	free(pieces);
                              }
                              
                              int main(void) {
                              	int x;
                              	
                              	printf("Quelle somme voulez-vous : ");
                              	scanf("%d", &x);
                              	zcoupure(x);
                              	return EXIT_SUCCESS;
                              }
                              
                              • Partager sur Facebook
                              • Partager sur Twitter
                                20 mars 2010 à 22:29:08

                                Citation : Pouet_forever


                                En fait pourquoi personne ne veut faire le n°1 ? trop facile ? lol



                                Bon, une version pour le 1.
                                Pareil, je n'ai pas le courage de le faire sans tableaux. :p
                                #include <stdio.h>
                                
                                #define N_BIL   4
                                #define N_PIE   2
                                
                                void clearBuf(void)
                                {
                                    int c;
                                    while ((c = getchar()) != '\n' && c != EOF)
                                        ;
                                }
                                
                                int saisirSomme(void)
                                {
                                    int smm;
                                
                                    while (scanf("%d", &smm) != 1 || smm < 0)
                                    {
                                        puts( "Entrez un nombre positif !...");
                                        clearBuf();
                                    }
                                
                                    return smm;
                                }
                                
                                int traiter(    int smm,            /* Somme courante */
                                                int *cprs,          /* Tableau de coupures */
                                                int n,              /* Nombre de coupures différentes */
                                                char const *s_nom)  /* Nom de de la coupure */
                                {
                                    int i;
                                    for (i = 0; i < n; i++)
                                    {
                                        if(smm >= cprs[i])
                                        {
                                            int q = smm / cprs[i];
                                            printf("%d %s%sde %d.\n", q, s_nom,
                                                q > 1 ? "s " : "  ", cprs[i]);
                                            smm %= cprs[i]; /* smm -= q * cprs[i]; */
                                        }
                                    }
                                
                                    return smm;
                                }
                                
                                
                                int main(void)
                                {
                                    int billets[N_BIL] = {100, 50, 20, 10};
                                    int pieces[N_PIE] = {2, 1};
                                    int somme;
                                
                                    printf("%s", "Quelle somme desirez vous ? somme -> ");
                                    somme = saisirSomme();
                                
                                    somme = traiter(somme, billets, N_BIL, "billet");
                                    somme = traiter(somme, pieces,  N_PIE, "piece");
                                
                                    return 0;
                                }
                                


                                edit : corretion d'une maladresse(utilisation du modulo)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Zeste de Savoir, le site qui en a dans le citron !
                                  21 mars 2010 à 11:12:59

                                  Bonjours, voici ma contribution pour l'exo 1. Je suis ouvert à toutes les critiques mais j'aimerais surtout que l'on juge la "propreté" de mon code:

                                  #include <stdio.h>
                                  #include <stdlib.h>
                                  
                                  //-------Protothype des fonctions-------
                                  int Calcule_Coupe( int argent_A_Couper);
                                  int resultat_Calcule_Coupe( int resultat500, int resultat200, int resultat100, int resultat50, int resultat20, int resultat10, int resultat5 );
                                  void intro();
                                  void recommencer();
                                  
                                  
                                  //-------Main-------
                                  int main()
                                  {
                                      //On affiche la fonction "intro" qui appelera toutes les autre.
                                      intro();
                                      return 0;
                                  }
                                  
                                  int Calcule_Coupe(int argent_A_Couper)
                                  {
                                      // DSL pour les noms un peu "bete".
                                      int reste1, reste2, reste3, reste4, reste5, reste6, reste0;
                                      int moins1, moins2, moins3, moins4, moins5, moins6;
                                  
                                  //-------groose coupure-------
                                  
                                      reste0 = argent_A_Couper / 500;//Si a_A_C = 1855, reste0 = 3
                                  
                                          moins1 = argent_A_Couper % 500;//Si a_A_C = 1855, moins1 = 355
                                  
                                              reste1 = moins1 / 200;//Si a_A_C = 1855, reste1 = 1
                                  
                                                  moins2 =  moins1 % 200;//Si a_A_C = 1855, moins2 = 155
                                  
                                                      reste2 = moins2 / 100;//Si a_A_C = 1855, reste2 = 1
                                  
                                                          moins3 = moins2 % 100;//Si a_A_C = 1855, moins3 = 55
                                  
                                                              reste3 = moins3 / 50;//Si a_A_C = 1855, reste3 = 1
                                  
                                                          moins4 = moins3 % 50;//Si a_A_C = 1855, moins4 = 5
                                  
                                                      reste4 = moins4 / 20;//Si a_A_C = 1855, reste4 = 0
                                  
                                                  moins5 = moins4 %20;//Si a_A_C = 1855, moins5 = 5
                                  
                                              reste5 = moins5 / 10;//Si a_A_C = 1855, reste5 = 0
                                  
                                          moins6 = moins5 % 10;//Si a_A_C = 1855, moins6 = 5
                                  
                                      reste6 = moins6 / 5;//Si a_A_C = 1855, reste6 = 1
                                  
                                  
                                  //On affiche les resultats
                                      printf("%d euros font en grosse coupure:\n\n\n", argent_A_Couper);
                                      resultat_Calcule_Coupe(reste0, reste1, reste2, reste3, reste4, reste5, reste6);
                                  
                                  //On affiche la fonction "recommencer"
                                      recommencer();
                                  
                                      return 0;
                                  
                                  }
                                  
                                  //-------Pour l'intro-------
                                  void intro()
                                  {
                                          int somme_Dargent;
                                  
                                      printf("\n\nBonjours, ce programme est un simulateur de distribution d'argent en\ncoupures differentes. Il ne gere pas les cas superieurs a 95000 euros.\n\n");
                                      printf("Veuillez saissir votre somme d'argent: ");
                                  
                                      scanf("%d", &somme_Dargent);
                                      printf("\n\n\n");
                                  
                                  //On appele la fonction "somme_Dargent" qui appellera toute les autres.
                                      Calcule_Coupe(somme_Dargent);
                                  
                                  
                                  }
                                  
                                  //-------Pour demander si on veux recommencer-------
                                  void recommencer()
                                  {
                                      int demande, somme_Dargent;
                                  
                                          printf("\n\nVoulez-vous recommencer?");
                                          printf("\n\n1. Oui!\n2. Non!\n");
                                          printf("\nVotre choix: ");
                                          scanf("%d", &demande);
                                  
                                      if (demande == 1)
                                   {
                                          printf("\n\n\nVeuillez saissir votre somme d'argent: ");
                                          scanf("%d", &somme_Dargent);
                                          printf("\n\n\n");
                                          Calcule_Coupe(somme_Dargent);
                                  
                                   }
                                      else if(demande == 2)
                                   {
                                      printf("\n\nAu revoir!\n\n\n");
                                   }
                                      else
                                   {
                                      recommencer();
                                   }
                                  
                                  }
                                  
                                  
                                  //-------Pour afficher les resultats de " calcule_Coupe "
                                  int resultat_Calcule_Coupe( int resultat500, int resultat200, int resultat100, int resultat50, int resultat20, int resultat10, int resultat5 )
                                  {
                                  
                                              if(resultat500 > 1)
                                   {
                                      printf("%d billets de 500 euros\n", resultat500);
                                   }
                                                  else if(resultat500 == 1)
                                   {
                                      printf("1 billet de 500 euros\n");
                                   }
                                  
                                                      if(resultat200 > 1)
                                   {
                                      printf("%d billets de 200 euros\n", resultat200);
                                   }
                                                          else if(resultat200 == 1)
                                   {
                                      printf("1 billet de 200 euros\n");
                                   }
                                  
                                                              if(resultat100 == 1)
                                   {
                                      printf("1 billet de 100 euros\n");
                                   }
                                  
                                                                  if(resultat50 == 1)
                                   {
                                      printf("1 billet de 50 euros\n");
                                   }
                                  
                                                              if(resultat20 > 1)
                                   {
                                      printf("%d billets de 20 euros\n", resultat20);
                                   }
                                                          else if(resultat20 == 1)
                                   {
                                      printf("1 billet de 20 euros\n");
                                   }
                                  
                                                      if(resultat10 == 1)
                                   {
                                      printf("1 billet de 10 euros\n");
                                   }
                                  
                                                  if (resultat5 == 1)
                                   {
                                      printf("1 billet de 5 euros\n");
                                   }
                                  
                                      return 0;
                                  }
                                  /*
                                     Si il n'y a aucun numero dans une categorie de billet,
                                     le programme ne l'affichera pas et si il y a plusieurs
                                     billets d'une meme categorie de billet, il mettra le
                                     mot billet au pluriel.
                                  */
                                  
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    21 mars 2010 à 11:20:24

                                    C'est pas trop mal, maintenant tu peux essayer de le faire avec des tableaux et simplifier un peu tes fonctions. ;)

                                    Je te déconseille fortement de faire ça :

                                    void recommencer()
                                    {
                                    [...]
                                        else
                                    	{
                                    		recommencer();
                                    	}
                                    	
                                    }
                                    

                                    Tu fais une récursion, et je pense que ce n'est pas encore de ton niveau. Contente toi des boucles. ;)

                                    Sinon ce serait bien que tu indentes mieux ton code :

                                    #include <stdio.h>
                                    #include <stdlib.h>
                                    
                                    //-------Protothype des fonctions-------
                                    int Calcule_Coupe( int argent_A_Couper);
                                    int resultat_Calcule_Coupe( int resultat500, int resultat200, int resultat100, int resultat50, int resultat20, int resultat10, int resultat5 );
                                    void intro();
                                    void recommencer();
                                    
                                    
                                    //-------Main-------
                                    int main()
                                    {
                                    	//On affiche la fonction "intro" qui appelera toutes les autre.
                                    	intro();
                                    	return 0;
                                    }
                                    
                                    int Calcule_Coupe(int argent_A_Couper)
                                    {
                                    	// DSL pour les noms un peu "bete".
                                    	int reste1, reste2, reste3, reste4, reste5, reste6, reste0;
                                    	int moins1, moins2, moins3, moins4, moins5, moins6;
                                    	
                                    	//-------groose coupure-------
                                    	
                                    	reste0 = argent_A_Couper / 500;//Si a_A_C = 1855, reste0 = 3
                                    	
                                    	moins1 = argent_A_Couper % 500;//Si a_A_C = 1855, moins1 = 355
                                    	
                                    	reste1 = moins1 / 200;//Si a_A_C = 1855, reste1 = 1
                                    	
                                    	moins2 =  moins1 % 200;//Si a_A_C = 1855, moins2 = 155
                                    	
                                    	reste2 = moins2 / 100;//Si a_A_C = 1855, reste2 = 1
                                    	
                                    	moins3 = moins2 % 100;//Si a_A_C = 1855, moins3 = 55
                                    	
                                    	reste3 = moins3 / 50;//Si a_A_C = 1855, reste3 = 1
                                    	
                                    	moins4 = moins3 % 50;//Si a_A_C = 1855, moins4 = 5
                                    	
                                    	reste4 = moins4 / 20;//Si a_A_C = 1855, reste4 = 0
                                    	
                                    	moins5 = moins4 %20;//Si a_A_C = 1855, moins5 = 5
                                    	
                                    	reste5 = moins5 / 10;//Si a_A_C = 1855, reste5 = 0
                                    	
                                    	moins6 = moins5 % 10;//Si a_A_C = 1855, moins6 = 5
                                    	
                                    	reste6 = moins6 / 5;//Si a_A_C = 1855, reste6 = 1
                                    	
                                    	
                                    	//On affiche les resultats
                                    	printf("%d euros font en grosse coupure:\n\n\n", argent_A_Couper);
                                    	resultat_Calcule_Coupe(reste0, reste1, reste2, reste3, reste4, reste5, reste6);
                                    	
                                    	//On affiche la fonction "recommencer"
                                    	recommencer();
                                    	
                                    	return 0;
                                    	
                                    }
                                    
                                    //-------Pour l'intro-------
                                    void intro()
                                    {
                                    	int somme_Dargent;
                                    	
                                    	printf("\n\nBonjours, ce programme est un simulateur de distribution d'argent en\ncoupures differentes. Il ne gere pas les cas superieurs a 95000 euros.\n\n");
                                    	printf("Veuillez saissir votre somme d'argent: ");
                                    	
                                    	scanf("%d", &somme_Dargent);
                                    	printf("\n\n\n");
                                    	
                                    	//On appele la fonction "somme_Dargent" qui appellera toute les autres.
                                    	Calcule_Coupe(somme_Dargent);
                                    	
                                    	
                                    }
                                    
                                    //-------Pour demander si on veux recommencer-------
                                    void recommencer()
                                    {
                                    	int demande, somme_Dargent;
                                    	
                                    	printf("\n\nVoulez-vous recommencer?");
                                    	printf("\n\n1. Oui!\n2. Non!\n");
                                    	printf("\nVotre choix: ");
                                    	scanf("%d", &demande);
                                    	
                                    	if (demande == 1)
                                    	{
                                    		printf("\n\n\nVeuillez saissir votre somme d'argent: ");
                                    		scanf("%d", &somme_Dargent);
                                    		printf("\n\n\n");
                                    		Calcule_Coupe(somme_Dargent);
                                    		
                                    	}
                                    	else if(demande == 2)
                                    	{
                                    		printf("\n\nAu revoir!\n\n\n");
                                    	}
                                    	else
                                    	{
                                    		recommencer();
                                    	}
                                    	
                                    }
                                    
                                    
                                    //-------Pour afficher les resultats de " calcule_Coupe "
                                    int resultat_Calcule_Coupe( int resultat500, int resultat200, int resultat100, int resultat50, int resultat20, int resultat10, int resultat5 )
                                    {
                                    	
                                    	if(resultat500 > 1)
                                    	{
                                    		printf("%d billets de 500 euros\n", resultat500);
                                    	}
                                    	else if(resultat500 == 1)
                                    	{
                                    		printf("1 billet de 500 euros\n");
                                    	}
                                    	
                                    	if(resultat200 > 1)
                                    	{
                                    		printf("%d billets de 200 euros\n", resultat200);
                                    	}
                                    	else if(resultat200 == 1)
                                    	{
                                    		printf("1 billet de 200 euros\n");
                                    	}
                                    	
                                    	if(resultat100 == 1)
                                    	{
                                    		printf("1 billet de 100 euros\n");
                                    	}
                                    	
                                    	if(resultat50 == 1)
                                    	{
                                    		printf("1 billet de 50 euros\n");
                                    	}
                                    	
                                    	if(resultat20 > 1)
                                    	{
                                    		printf("%d billets de 20 euros\n", resultat20);
                                    	}
                                    	else if(resultat20 == 1)
                                    	{
                                    		printf("1 billet de 20 euros\n");
                                    	}
                                    	
                                    	if(resultat10 == 1)
                                    	{
                                    		printf("1 billet de 10 euros\n");
                                    	}
                                    	
                                    	if (resultat5 == 1)
                                    	{
                                    		printf("1 billet de 5 euros\n");
                                    	}
                                    	
                                    	return 0;
                                    }
                                    /*
                                     Si il n'y a aucun numero dans une categorie de billet,
                                     le programme ne l'affichera pas et si il y a plusieurs
                                     billets d'une meme categorie de billet, il mettra le
                                     mot billet au pluriel.
                                     */
                                    
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      21 mars 2010 à 11:48:23

                                      @Pouet_forever :
                                      Pour la fonction de comparaison tu te complique le vie, non ?
                                      int compar(const void * ag1, const void * ag2) {
                                      	int n1 = * (int const *) ag1;
                                      	int n2 = * (int const *) ag2;
                                      	
                                      	if (n1 > n2)
                                      		return -1;
                                      	else if (n1 < n2)
                                      		return 1;
                                      	else
                                      		return 0;
                                      }
                                      

                                      deviens
                                      int compar(const void * ag1, const void * ag2) {
                                      	int n1 = * (int const *) ag1;
                                      	int n2 = * (int const *) ag2;
                                      	
                                      	return n2-n1;
                                      }
                                      


                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        21 mars 2010 à 11:53:48

                                        Non. :)
                                        Si n1 et n2 sont grand (bon ok ça n'arrivera pas dans mon programme :-° ) tu fera un joli overflow. ;)
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          21 mars 2010 à 12:32:40

                                          Euh, tu peux développer car je vois pas comment il y a un overflow à cause d'une soustraction (Si c'était une addition d'accord mais là je ne vois vraiment pas pourquoi).
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            21 mars 2010 à 12:42:16

                                            Des nombres négatifs -> (-) et (-) == (+) ;)
                                            Mais bon comme j'ai dit juste avant, dans mon programme ça n'arrivera pas (quoi que dans l'exo 2 si l'utilisateur entre des grandes valeurs ça peut arriver).
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              21 mars 2010 à 13:03:20

                                              Merci de m'avoir évalué ( OK pour l'indentation ) et

                                              Citation : Pouet_forever

                                              Des nombres négatifs -> (-) et (-) == (+) ;).


                                              C'est ce que je fais en math :p .

                                              P.S Je peux me l'ancer dans l'exo 2 ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                21 mars 2010 à 13:33:14

                                                Citation : Pouet_forever

                                                Des nombres négatifs -> (-) et (-) == (+) ;)
                                                Mais bon comme j'ai dit juste avant, dans mon programme ça n'arrivera pas (quoi que dans l'exo 2 si l'utilisateur entre des grandes valeurs ça peut arriver).



                                                Je n'y avais pas pensé (en même temps on travaille "normalement" sur des entiers naturels dans ces exos).
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  21 mars 2010 à 13:44:56

                                                  Citation : Pouet_forever

                                                  Des nombres négatifs -> (-) et (-) == (+) ;)


                                                  Oui si tu fais une multiplication, mais là Lithrein fait une soustraction, où est le problème ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    21 mars 2010 à 13:47:57

                                                    lol
                                                    Reprends tes cours de maths. :p
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      21 mars 2010 à 14:08:46

                                                      (-n) - (-m) == (-n) + m == m - n
                                                      Mais si tu connais pas les valeurs de n et m, tu peux pas savoir quel sera le signe.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        21 mars 2010 à 14:24:09

                                                        Ouais, c'est super !
                                                        Tu veux une glace ? :)
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          21 mars 2010 à 15:04:46

                                                          Oui :D .
                                                          J'ai fais ce que tu m'as dis, j'ai repris mes cours de math. Et je vois pas l'overflow.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            21 mars 2010 à 15:13:21

                                                            Tout bêtement INT_MAX-INT_MIN par exemple.
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              21 mars 2010 à 15:19:46

                                                              Laisse tomber il le fait exprès ... pas la peine de se casser la tête pour rien ...
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              zCoupure

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown