Triple d'un nombre a virgul

c-4 -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

ce programme est destiné a multiplier un nombre a virgul par 3 en notation francais mais il parait que c'est imcomplet tous aide sera la bien venu

#include <stdio.h>
int main()
{
int a, b;
int lavaleurfinal;
double triple;
scanf("%d,%d", &a, &b);
{
double n = b;

while(n >= 1)
{
n = n/10;
}
n = n + a;
triple = 3*n;
lavaleurfinal = triple;
printf("%d", lavaleurfinal);
return 0;
}
}

3 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    Si je comprends bien ton but, c'est de gérer les nombres en notation français, c'est à dire en écrivant les flottant avec une virgule.
    Dans ce cas, pas la peine de te faire chier, il existe une bibliothèque standard en C : locale.h cf. https://linux.die.net/man/7/locale
    bonne chance.
    0
  2. Umbriel Messages postés 53 Statut Membre 4
     
    premièrement ton initialisation de variables est étrange.
    int a, b, lavaleurfinale, triple;
    (pourquoi mettre un double ? quand tu multiplies un nombre entier par un autre nombre entier, ça donne un autre entier. Si tu veux multiplier des nombres à virgule alors :
    double a, b, lavaleurfinale, triple;)
    Ensuite je crois que tu demandes à l'utilisateur quels chiffres il souhaite.

    Avant double n = b;
    Ne serait-ce pas une accolade fermante plutôt ?

    Moi ton code me parait juste étrange.

    J'aurait juste pris une variable double, multiplier par 3 et renvoyer la valeur.
    -1
    1. c-4
       
      merci pour tt
      jais un autre blem sauf que cette fois c'est un peu bizar

      le code que voici a pour but de convertir un nombre entier en nombre binaire sauf que le resultat donné est vrai mais inversé tt aide est la bienvenue


      #include <stdio.h>
      int main()
      {
      int nombre = 0;
      int restant = 0;
      int enbbinaire = 0;
      printf("Entrer un nombre : ");
      scanf("%d", &nombre);
      while(nombre > 0)
      {
      restant = nombre % 2*10;
      printf("%d", restant/10);
      enbbinaire++;
      nombre/=2;

      }
      return 0;
      }
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      normalement, nouvelle question=nouveau message.
      Regarde sur le forum, le problème de conversion en binaire a été posé et résolu de nombreuse fois !
      0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Cette partie-là est fausse :

    while(n >= 1)
    {
    n = n/10;
    }

    En effet, si a,b = 1,0025
    Tu feras le calcul sur 1,25.
    Il te faut plutôt compter le nombre de chiffres contenus dans b, et diviser b par 10 puissance ce nombre.

    Ou alors, faire comme dit Char Snipeur, mais je doute que ce soit ce qu'attend ton prof.

    Xavier
    -1