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

Résolu
tuyn-txa Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
tuyn-txa Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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;
}
A voir également:

4 réponses

ange
 
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   Statut Membre Dernière intervention  
 
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
ange
 
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   Statut Membre Dernière intervention  
 
Et donc quel syntaxe correspond par exemple à un nombre "10.89" ? Merci beaucoup
0
ange
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   437
 
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   Statut Membre Dernière intervention  
 
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