Programme C probleme

Bonjour,
voici mon mini programme :

#include <stdio.h>
#include <stdlib.h>

int main()
{
int nombreEnMillimetre, nombreEnCentimetre = 0 ;
printf("***** BIENVENUE DANS CE MINI PROGRAMME DE CONVERSION *****\n\n");
printf (" Entrez un nombre avec unite le millimetre pour le convertir en centimetre \n\n");
scanf ("%d", &nombreEnMillimetre);
nombreEnCentimetre = nombreEnMillimetre * 10;
printf ("%d millimetre est egal a %d centimetre \n\n", nombreEnMillimetre, nombreEnCentimetre);
system ("PAUSE");
return 0;
}

quand je fais 10 millimetre sa me dit 10 millimetre est egal a 100 centimetre
il ya un probleme, comment pourais-je faire pour avoir une vrai conversion???????
Configuration: Windows Vista
Firefox 3.5.3

59 réponses

Résumé de la discussion

Le problème est une conversion millimètres vers centimètres mal implémentée dans le programme, qui multiplie le nombre de millimètres par 10 au lieu de le diviser par 10. Des solutions essentielles consistent à remplacer la multiplication par une division par 10 et à utiliser un type flottant pour préserver les décimales lorsque l’on convertit, par exemple mm / 10.0. En cas d'utilisation d'entiers, la division tronque le résultat; il est préférable d'utiliser le type double et d'imprimer avec %f (par exemple nombreEnMillimetre / 10.0) pour obtenir une valeur en centimètres fiable. Enfin, des échanges mentionnent l'emploi éventuel de la fonction round() via la bibliothèque math.h pour arrondir le résultat et affiner l'affichage en centimètres.

Bobot (l’IA à votre service)
  1. non mais ya aucun soucis Pilow, tu avais bien précisé que c'était du pseudo code ;)

    EDIT : ah non.... Boarf, c'est pas grave ;)
    1. On va dire que les ... indiquait une ébauche de code/pseudo-code !
  2. Désolé pour les petits oublis et le manque d'explication et la petite faute du '+', j'avais fais ça rapidement :s
    1. res est ta variable résultat...
      Dans ton cas, tu la déclare en faisant int res;

      if(pouet == +) <- ceci n'est pas à mettre, c'est du pseudo code!
      == va tester si ta variable pouet (dans laquelle tu demande à l'utilisateur de renseigner son choix d'opération) est égale à la valeur à droite. Ici tu as 2 choix : soit laisser POUET en tant que char et faire
      if (pouet == '+') 


      Ou bien afficher un menu en disant "1_Addition (+) / 2_Soustraction (-) / 3_..." etc
      et dans ce cas, POUET devient int, et tu compare avec son indice (1, 2 ou 3...)

      %c indique qu'ici on attend une valeur de type Caractère

      et enfin &pouet : ne t'en soucie pas pour le moment, tu apprendra ça plus tard sur le SDZ (histoire de pointeurs dont je te parlais hier ;) ) Utilise ça comme ça bêtement sans chercher à comprendre pour l'instant, ça ne fera que t'embrouiller.

      Si tu as d'autres questions, n'hésite pas ;)
      1. alors explique moi le : %c, &pouet stp je ne comprend pas
        ainsi que le if (pouet == +=
        et aussi res ???
        1. minutes = secondes * 60; 


          Toujours le meme problème

          minutes = secondes / 60; 


          si tu veux pouvoir choisir ton opération, un truc facil,
          printf("choisissez + - * /");
          scanf("%c", &pouet);
          if (pouet == +)
          res = a + b;
          else
          ....
          1. aidez moi aussi ici svp
            #include <stdio.h>
            #include <stdlib.h>

            int main()
            {
            int secondes, minutes, heures = 0;
            printf("Ce programme va permettre de convertir des secondes en des minutes et des minutes en des heures et des secondes en des heures\n\n");
            printf("entrez un chiffre en seconde pour le convertir en minute : \n\n");
            scanf ("%d", &secondes);
            minutes = secondes * 60;
            printf ("%d est egal a %d minutes\n\n", secondes, minutes);

            return 0;
            }

            je n'y arrive pas trop :(
            1. Ree !
              je n'arrive pas à dormir alors je fais de la programmation facile :D
              Voici mon code :
              #include <stdio.h>
              #include <stdlib.h>

              int main()
              {
              int nombre1, nombre2, resultat = 0;
              printf("entrez 2 nombres et choisissez quel operation faire\n");
              scanf ("%d", &nombre1);
              scanf ("%d", &nombre2);
              printf ("vous avez entrez le nombre %d et le nombre %d \n\n", nombre1, nombre2);
              resultat = nombre1 + nombre2;
              printf ("la somme de %d et %d est egal a %d \n\n", nombre1, nombre2, resultat);
              return 0;
              }

              mais ce que je veux faire c'est que je ne veux pas choisir de faire une addition par exemple je veux que dans la console je rentre 2 + 2 ou 2*2 mais je ne veux pas entrer l'opération à faire dans mon code, je veux être libre de la faire

              par exemple resultat = nombre1 + nombre2
              là on fait un addition mais je veut etre libre de faire toute les opération possible, comme une sorte de calculatrice quoi !
              aidez moi svp
              1. ok ba déjà vu que je n'ai pas une grande logique je vais un peu voir ton site et le programme de maths et je vais cherché quelques lecon pour m'y mettre parce-que je ne me vois pas être chauffeur poids lourds moi :S
                1. Pas de problème.
                  En attendant, en ce qui concerne la programmation, les cours C et C++ du SDZ sont un grand pas pour avoir des bases solides !
                  1. Google est ton ami ^^ et tu as ce forum pour demander des conseils...
                    sinon je peux aussi t'aider :p
                    1. ah oui forcément, en candidat libre mais je n'aurais pas d'argent pour me payer des profs moi :O
                      puis je les trouverais ou mes cours ??
                      1. Essaye. Dans ma classe j'avais un mec qui n'avait pas le bac. Il a négocié et s'est engagé à le repasser en candidat libre. A toi de voir.
                        1. mais il vont me prendre dans leur lycée ou ils font le bts ?

                          et on ne part pas de 0 là !! :O
                          1. Donc BTS IG et je pars de 0 mais par exemple les maths on va parler de quoi ?
                            • 1
                            • 2
                            • 3