Nombre avirgule dans le langage c

bonj je me nome DIARRA et je suis débutant en informatique bon voila je voudrait écrire un programme qui lit au clavier un nombre décimal mais écrit avec une virgule ensuite multiplier le tout par trois mais ce que je n'arrive pas a faire c' est de stocker les 3 caractères en une seul pour pouvoir en faire une seul de type double pour ensuite le multiplier par 3.
Chaque aide sera la bien venu
merci

11 réponses

  1. Contributeur
    Bonjour,
    Tu lis une chaîne de caractère avec scanf (ou fgets).
    Tu transformes la virgule en point avec strchr
    Et tu transformes la chaîne en double avec strtod

    Et voilou.

    Cdlt,
    0
    1. un nombre avirgule, c'est un entier , non ?
      0
      1. Contributeur
        Euh non.
        Un nombre à virgule c'est un nombre décimal...
        0
        1. le truck c'est que je nais en connaissance que
          int, double, char, scanf, while, if, else, printf,
          se sont les spécificateurs que je dois utilisé
          0
          1. Contributeur
            Dans ce cas, tu lis deux nombres n1 et n2 (doit être positif).
            Tu initialises le nombre final (double) à n2.
            Tu le divises par 10 jusqu'à ce qu'il soit inférieur à 10.
            Et tu y ajoutes n1.

            Cdlt,
            0
            1. c'est la procédure que je voulais appliquer difficile est d'initialiser le n2 pour pouvoir le diviser par a chaque colonnes ajouté
              si tu peux m'aider ca me ferais plaisir et en passant si tu pouvais m'indiquer un moyen de de convertir un entier (pas décimal) en binaire ca m'aiderait beaucoup
              0
              1. Contributeur
                Tu déclares les variables a et b en int.
                Tu déclares la variable n en double.
                Tu initialises n à b.
                Tant que n est supérieur à 1, tu mets n/10 dans n.
                Tu stockes n+a dans n.
                Tu affiches n.

                Je peux pas être plus clair.
                Poste le code en fonction de ce que je t'ai dit pour qu'on puisse t'aider.

                Pour convertir un entier en binaire, il y a plein de posts qui le traite sur le forum.

                Cdlt,
                0
                1. il n'y a pas de solution concernant le niveau que jais
                  0
                  1. #include <stdio.h>

                    int main()
                    {
                    int a;
                    int b;
                    double n = b;
                    double c;
                    while(n > 1)
                    {
                    scanf("%d%d", &a, &b);
                    n = n/10;
                    }
                    n = n +a;
                    c = 3*n;
                    printf("%lf", c);
                    return 0;
                    }

                    c'est ce que jais écrit mais ca marche pas
                    0
                    1. Contributeur
                      Ah, bah voilà un effort :-))).
                      Par contre, ça correspond pas à mes lignes.
                      Là tu as mis : tant que n supérieur à 1, lire a et b...

                      #include <stdio.h>
                      
                      int main (void) {
                          int a,b;
                          double n;
                      
                          printf("nombre : ");
                          scanf("%d,%d",&a,&b);
                          n=b;
                          while(n>1) n/=10;
                          n+=a;
                      
                          printf("n=%f\n",n);
                      
                          return 0;
                      }
                      
                      0