Triple d'un nombre a virgul

Fermé
c-4 - 15 févr. 2011 à 09:46
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 15 févr. 2011 à 13:41
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

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 févr. 2011 à 10:06
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
Umbriel Messages postés 46 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 29 mars 2012 4
15 févr. 2011 à 09:55
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
15 févr. 2011 à 13:41
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 févr. 2011 à 11:49
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