"pow " pour calculer la puissance en C

Fermé
ikram00
Messages postés
16
Date d'inscription
lundi 5 mars 2012
Statut
Membre
Dernière intervention
25 mai 2012
- 5 mars 2012 à 01:30
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
- 5 mars 2012 à 13:49
Bonjour,


je suis débutante en programmation j'ai un petit problème avec la bibliothèque <math.h>
et là j'arrive pas à calculer la puissance en utilisant la fonction "pow"
voilà mon prog :

printf("entre un nombre : \n");
scanf("%d",&nbr3);
printf("entrez un deuxieme nombre : \n");
scanf("%d",&nbr4);
printf(" %d ^ %d = %d\n",nbr3,nbr4,pow(nbr3,nbr4));
en compilant le prog le resultat envoie 0 !!!
besoin d'un coup de main
et mercii

A voir également:

1 réponse

KX
Messages postés
16527
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
19 mai 2022
2 954
5 mars 2012 à 08:15
pow s'applique à des nombres réels, or ici avec %d c'est des entiers que tu utilises...
1
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 326
5 mars 2012 à 08:35
la solution :
printf(" %d ^ %d = %e\n",nbr3,nbr4,pow(nbr3,nbr4));
ou
printf(" %d ^ %d = %ld\n",nbr3,nbr4,long(pow(nbr3,nbr4)));
suivant que tu utilise des grands nombres ou pas.
0
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 804
5 mars 2012 à 10:17
Char Snipeur,
Ne serait-ce pas plutôt un cast que tu voulais réaliser avec "long" ?
0
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 326
5 mars 2012 à 10:28
sait pas. Je ne vois pas la subtilité.
0
ikram00
Messages postés
16
Date d'inscription
lundi 5 mars 2012
Statut
Membre
Dernière intervention
25 mai 2012

5 mars 2012 à 10:50
en fait je crois que ça marche aussi avec des int ;voilà ce cas est juste et il renvoi la bonne réponse !!! j'ai juste ajouté une nouvelle variable à la quelle j'ai affecté la puissance en gardant les int !!!!

case 7 :printf("entre un nombre : \n");
scanf("%d",&nbr3);
printf("entrez un deuxieme nombre : \n");
scanf("%d",&nbr4);
p=pow(nbr3,nbr4);
printf(" %d ^ %d =%d \n",nbr3,nbr4,p);
break;
0
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 804
5 mars 2012 à 11:34
Char Snipeur,

Il n'y a pas de subtilité. long() n'est pas une fonction. Tu ne peux donc pas faire : long(pow(...)). En revanche, tu peux caster avec (long)pow(...)

Cdlt,
0