Triple d'un nombre a virgul

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. Contributeur
    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
    1. 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. 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. Contributeur
        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
    2. 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