Rechercher : dans
Par :

Besoin d'un petit truc pour du language C

Dernière réponse le 5 jui 2009 à 00:16:31 PommeC, le 4 jui 2009 à 01:19:18 
 Signaler ce message aux modérateurs

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

Configuration: VAIO (core2duo 1,66 Ghz)   2Go ram   (Geforce 8400M GT  128 dedier)   200 Go dd

Meilleures réponses pour « Besoin d'un petit truc pour du language C » dans :
Langage C++ - Les types de données Voir Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données Voir Les types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

Skinnych, le 4 jui 2009 à 03:52:11
  • +1

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 ;)

Répondre à Skinnych

2

PommeC, le 4 jui 2009 à 05:03:23

Du tonnerre Merci beaucoup beaucoup :D

"Bonne nuit ..."

Répondre à PommeC

3

 nizar, le 5 jui 2009 à 00:16:31

Dans le language c,il est preferable de traiter chaque etap tout seul,ne combine pas des varibla dans l'affichage

Répondre à nizar