Lang. C:un programme pour calculer (débutant)

Résolu/Fermé
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010 - 30 avril 2008 à 02:51
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010 - 30 avril 2008 à 13:54
Bonjour, je voudrais creer un programme qui avec un nombre decimal donné fasse :

((nombre * 0.034) + 0.25) + ((nombre * 0.0525) + 0.20) //"nombre" représente le nombre tapé par l'utilisateur au
depart.


Je voudrais que le logiciel affiche le resultat de l'opération) .

Merci à tout ceux qui pourraient m'aider.

Voici ce que j'essaye mais qui ne marche pas...

int main(int argc, char *argv[])
{double resultat = 0.0, nombre = 0.0;

printf("nombre:");

scanf("%If", &nombre);

resultat = ((nombre * 0.034) + 0.25) + ((nombre * 0.0525) + 0.20);



printf("%If\n", resultat);


system("PAUSE");
return 0;
}

4 réponses

Bonjour tuyn-txa,

Tout d'abord, je voudrais te passer ce lien qui te sera utile :
https://www.commentcamarche.net/contents/196-langage-c-les-types-de-donnees
Il décris les types de donnée en C, car ici utiliser tu utilises un double pour une donnée à laquel un float aurait largement suffit.
Adaptes bien tes types de donnée, ca peut être important selon le programme.

Ensuite, je ne trouve aucun include. Alors que certaines de tes fonctions, pour une compilation propre en nécessite.
Puis enfin, où es réellement le problème ? La compilation ne passe pas ? Quel est la valeur affiché sinon ?

Amicalement.
Ange
0
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010
30 avril 2008 à 03:16
Merci ange de m'avoir répondu aussi vite en faite je n'ai pas écrit les "include" mais ils sont bien dans ma source :
#include <stdio.h>
#include <stdlib.h>


Le problème est que lorsque je tape par exemple 3.4 et que " je fait" entree, il m'affiche "If"...

Je ne comprends pas pourquoi car je lui demande de m'afficher le contenu de la variable resultat...
0
Tout s'éclaircit :)

C'est le spécificateur de format qui est faux. Ici tu as mis "%lf" mais il n'existe pas pour la fonction printf.
Tu trouveras la réponse ici :
http://membres.lycos.fr/dancel/c/c60_10.htm

Bonne chance.
0
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010
30 avril 2008 à 03:30
Et donc quel syntaxe correspond par exemple à un nombre "10.89" ? Merci beaucoup
0
Si je t'ai donné un lien, ce n'est pas pour recevoir en retour une question.
Tu as tous les éléments de réponse, la facilité d'attendre une réponse ne te fera pas progresser.
0
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010
30 avril 2008 à 03:38
Ok, merci quand même pour le lien.
J'essaierai de voir ça demain...


A bientot
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
30 avril 2008 à 05:24
tuyn-txa ton programme est presque parfait le probleme vient du format
le probleme c'est que tu as mis %If soit % suivi de la lettre "i" majuscule puis "f"
alors qu'il faut mettre %lf soit % suivi de la lettre "l" minuscule puis "f"
essaye ça
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{double resultat = 0.0, nombre = 0.0;

printf("nombre:");

scanf("%lf", &nombre);

resultat = ((nombre * 0.034) + 0.25) + ((nombre * 0.0525) + 0.20);
printf("%lf\n",resultat);
}
0
tuyn-txa Messages postés 6 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 19 novembre 2010
30 avril 2008 à 13:54
Ah ok j''étais toujours pas au courant que c'était %lf et non %if ...

c'est pour ça que ça marchait jamais...


Merci beaucoup mype
A bientot
0