Nombre avirgule dans le langage c

Fermé
c-4 - 19 déc. 2010 à 18:28
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 20 déc. 2010 à 21:45
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
A voir également:

11 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
19 déc. 2010 à 18:37
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
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 131
19 déc. 2010 à 21:41
un nombre avirgule, c'est un entier , non ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
19 déc. 2010 à 22:19
Euh non.
Un nombre à virgule c'est un nombre décimal...
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 déc. 2010 à 20:14
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
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 déc. 2010 à 20:51
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
il n'y a pas de solution concernant le niveau que jais
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 déc. 2010 à 21:10
Ecoute, 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,
0
#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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 déc. 2010 à 21:45
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