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
Chaque aide sera la bien venu
merci
11 réponses
-
ContributeurBonjour,
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, -
un nombre avirgule, c'est un entier , non ?
-
ContributeurEuh non.
Un nombre à virgule c'est un nombre décimal... -
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é -
ContributeurDans 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, -
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 -
ContributeurTu 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, -
il n'y a pas de solution concernant le niveau que jais
-
ContributeurEcoute, je peux vraiment pas faire plus simple sans te donner la solution.
J'ai détaillé ligne par ligne.
Tu fais même pas l'effort de commencer ton programme.
Si t'es incapable de mettre mes lignes en programme, je te recommande de commcner par lire un tutorial : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
Cdlt, -
#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 -
ContributeurAh, 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; }