Langage C - Débutant - Pow
Raphael74
Messages postés
79
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je tiens tous d'abord avant de commencer, à vous préciser que je débute depuis seulement quelques semaine dans le domaine de programmation, plus particulierement dans le C (:
Voilà, je suis en train de comprendre et retenir de nouvelles fonctions, DE BASE, mais il y en a une qui me gène un peu..
C'est pow, pour calculer le carré d'un nombre, voilà mon programme:
double resultat;
int nombre3;
resultat=0;
nombre3=4;
resultat=pow(nombre3, 3);
printf("%d\n\n", resultat);
En compilant je ne trouve pas le résultat de 4 puissance 3 mais 0. Code::Blocks (oui car je carbure grâce à cet IDE) ne m'indique aucune erreur.
J'en conclu, que ce doit être une erreur de débutant :p
Vos avis, conseil, solutions ?
Merci (:
Je tiens tous d'abord avant de commencer, à vous préciser que je débute depuis seulement quelques semaine dans le domaine de programmation, plus particulierement dans le C (:
Voilà, je suis en train de comprendre et retenir de nouvelles fonctions, DE BASE, mais il y en a une qui me gène un peu..
C'est pow, pour calculer le carré d'un nombre, voilà mon programme:
double resultat;
int nombre3;
resultat=0;
nombre3=4;
resultat=pow(nombre3, 3);
printf("%d\n\n", resultat);
En compilant je ne trouve pas le résultat de 4 puissance 3 mais 0. Code::Blocks (oui car je carbure grâce à cet IDE) ne m'indique aucune erreur.
J'en conclu, que ce doit être une erreur de débutant :p
Vos avis, conseil, solutions ?
Merci (:
A voir également:
- Langage C - Débutant - Pow
- Langage ascii - Guide
- Langage binaire - Guide
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Pascal langage - Télécharger - Édition & Programmation
5 réponses
Salut.
Je ne voyais pas l'erreur jusqu'à ce que je commence à écrire ton programme chez moi.
je pense que résultat vaut bien 64, mais le problème viens de l'affichage avec printf, %d attend un entier et non un double. Utilise %e pour les doubles.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Je ne voyais pas l'erreur jusqu'à ce que je commence à écrire ton programme chez moi.
je pense que résultat vaut bien 64, mais le problème viens de l'affichage avec printf, %d attend un entier et non un double. Utilise %e pour les doubles.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Bonjour Raphael74,
Il se trouve que la fonction Pow travaille avec des double car sur les int, il y a souvent des problèmes de conversion.
Déclare tes variables en double, et dis-moi si tu as toujours le même problème.
Il se trouve que la fonction Pow travaille avec des double car sur les int, il y a souvent des problèmes de conversion.
Déclare tes variables en double, et dis-moi si tu as toujours le même problème.
Le premier argument se pow doit être un flottant (float, double ou long double), or toi tu utilises nombre3 comme un int, Code::Blocks aurait pu t'indiquer une erreur pour ça !
error C2668: 'pow' : appel ambigu à une fonction surchargéeMais ta véritable erreur vient du printf, resultat est un double tu dois donc mettre %f
double resultat; int nombre3=4; resultat=pow((double)nombre3,3); printf("%f\n\n", resultat);
Déjà, merci pour vos réponses (:
Le problème venait bien du printf avec le %d, que j'ai changé en %e, en compilant j'ai presque 64 :P -> 6.400000 + 001
Si j'ai bien compris le nombre 3 ne doit pas être un int mais un double par exemple ?
Le problème venait bien du printf avec le %d, que j'ai changé en %e, en compilant j'ai presque 64 :P -> 6.400000 + 001
Si j'ai bien compris le nombre 3 ne doit pas être un int mais un double par exemple ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question