Besoin d'un petit truc pour du language C

Résolu
Utilisateur anonyme -  
 nizar -
Bonjour tout le monde ! (ou plutot bonne nuit)

Je viens de commencer a programmer "en language C" avec (l'excellent) tuto de Matheo21.

J'aimerais pour tester un petit prog pour calculer l'imc des gens, voilà mon code (je crois que l'on dit comme ça...):

#include <stdio.h>
#include <stdlib.h>

int main()
{
int p = 0;
double t = 0;
int r = 0;

printf("Quel poids faites-vous?\n");
scanf("%d", &p);

printf("Quelle est votre taille?\n");
scanf("%lf", &t);


r = p / t;
printf("%d /pow(%f, 2) = %d\n\n", p, t, r);








return 0;
}




Tout va bien jusqu'à ce qu'il faille faire le carré de la taille >>>> printf("%d /pow(%f, 2) = %d\n\n", p, t, r); >>>> %d /pow(%f, 2). Quand il m'affiche la réponse il me fait juste %d/%f= ...

J'ai tout essayer mais rien ...

Alors auriez-vous la réponse s'il vous plait.

Merci beaucoup

3 réponses

Skinnych Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   11
 
Salut

Alors premièrement je te conseillerai de mettre tes 3 variables en 'float' histoire d'être tranquil.

Indiquer les unités est une bonne idée au cas où tu le fais tester à d'autres mais que facultatif.

Ensuite ton expression pour 'r' est fausse puisque tu as mis 'r = p / t;' au lieu de 'r = p / (t*t);'

Et enfin on ne met pas de fonction dans la première partie du printf à part si tu veux que ça s'affiche en tant que texte, mais ça ne sera pas calculé et je préfère quand même écrire (t*t) que pow(t,2) je trouve ça moins long donc au lieu de
'printf("%d /pow(%f, 2) = %d\n\n", p, t, r);'
'printf("%f / %f = %f\n\n", p, t*t, r);'

Ce qui donne à la fin selon mes préférences:

int main(){
float p = 0;
float t = 0;
float r = 0;

printf("Quel poids faites-vous?(Kg)\n");
scanf("%f", &p);

printf("Quelle est votre taille?(m)\n");
scanf("%f", &t);

r = p / (t*t);
printf("%3.2f / %2.2f = %2.2f\n\n", p, t*t, r);

return 0;
}

Normalement ça fonctionne, sans oublier qu'on utilise des "." et pas des ",".
Les chiffres entre le '%' et le 'f' c'est: 'le nombre de chiffres avant la virgule' . 'celui après'

Si t'as un soucis ;)
1
Utilisateur anonyme
 
Du tonnerre Merci beaucoup beaucoup :D

"Bonne nuit ..."
0
nizar
 
dans le language c,il est preferable de traiter chaque etap tout seul,ne combine pas des varibla dans l'affichage
0