Exposant avec C++!!?? [Fermé]

abdeloihab 85 Messages postés mercredi 4 mai 2005Date d'inscription 14 septembre 2007 Dernière intervention - 11 avril 2006 à 21:39 - Dernière réponse :  Xx_pussy_slayer_kevin_maltais_xX
- 15 sept. 2017 à 20:37
Bonsoir
je sais pas comment faire x à la puissance y en cpp
j'ai essayer x**y ca marche pas!!!
x^y ca marche pas!!!
si y a qq un qui peut m'aider svp
merci d'avance, je travail sur DEV C++
bonne soirée
Afficher la suite 
85Messages postés mercredi 4 mai 2005Date d'inscription 14 septembre 2007 Dernière intervention

13 réponses

Luffy =) 367 Messages postés mercredi 20 avril 2005Date d'inscription 19 mai 2006 Dernière intervention - 12 avril 2006 à 08:40
+21
Utile
1
Salut !

Il faut utiliser la fonction pow() :

int i = pow(x,2);

pour avoir x puissance 2. La fonction est déclarée dans math.h
Cette réponse vous a-t-elle aidé ?  
abdeloihab 85 Messages postés mercredi 4 mai 2005Date d'inscription 14 septembre 2007 Dernière intervention - 12 avril 2006 à 15:23
+2
Utile
salut
merci bcp Luffy
mais quand je fais ça:
float a,x,y;
cin>>x,y;
cout<<a;

je donne:2 puis 3
il me donne 1 comme 2 puissnce 3??!!
je sais pas pourquoi
a plus
Luffy =) 367 Messages postés mercredi 20 avril 2005Date d'inscription 19 mai 2006 Dernière intervention - 12 avril 2006 à 17:15
+2
Utile
1
C'est parce que quand tu veux récupérer 2 données avec une seule ligne de code, il faut mettre :
cin >> b >> c;

et là cela devrais marcher, car j'ai tester chez moi, et ça fonctionne nickel !
abdeloihab 85 Messages postés mercredi 4 mai 2005Date d'inscription 14 septembre 2007 Dernière intervention - 12 avril 2006 à 18:04
merci bcp
ca marche trés bien
a plus
0
Utile
4
J'ai un soucis similaire, mais avec un exposant sous forme de fraction :

2^(7/5)
et pow ne me sort pas le bon résultat (j'ai testé avec un cas simple, pow(100,1/2)

comment puis je le résoudre?
if faut que les paramètres d'entrées de pow soient de type double ceci un programmes testé en microsoft visual studio 2008 et donne du bonne résultat
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdio.h>
using namespace std ;

int main()
{
double a,b;
double y;
cin>> a;
cin>>b;
y= pow(a,b);
cout<<"y=\n"<<y;

return 0;
}
mamiemando 28084 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 9 décembre 2017 Dernière intervention - 15 mars 2012 à 20:26
Comme dit plus bas l'erreur vient du fait qu'une fraction de la forme n / m est évaluée comme un entier (vu que n est de type int). Il faut pour ces cas de figure caster n en double par exemple.

Ensuite dans ton exemple de programme, tu inclues plein de headers qui servent à rien et tu fais un mélange entre les headers C et les opérateurs du C++. Ainsi ton programme s'écrit de manière propre comme ceci :

En C++ :

#include <cmath>
#include <iostream>

int main() {
  double a, b;
  std::cin >> a;
  std::cin >> b;
  std::cout << pow(a, b) << std::endl;
  return 0;
}


En C :

#include <math.h>
#include <stdio.h>

int main() {
  double a, b;
  scanf("%lf", &a);
  scanf("%lf", &b);
  printf("%lf\n",pow(a, b));
  return 0;
}
fiddy 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention - 15 mars 2012 à 22:19
Juste une petite erreur : printf("%f\n",pow(a, b)); (%f au lieu de %lf).
mamiemando 28084 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 9 décembre 2017 Dernière intervention - 15 mars 2012 à 23:32
Parfaitement, j'allais le dire ;-)
mamiemando 28084 Messages postés jeudi 12 mai 2005Date d'inscriptionContributeurStatut 9 décembre 2017 Dernière intervention - 16 nov. 2007 à 20:46
0
Utile
2
Ah oui mais attention 1/2 = partie_entiere(0.5) = 0 en C (contrairement à 1.0/2 qui vaut bien 0.5). Peut-être que le problème vient de là !
n'oublie pas d'importer la bibliotheque math.h
fiddy 11141 Messages postés samedi 5 mai 2007Date d'inscriptionContributeurStatut 18 octobre 2016 Dernière intervention > Marcol417 - 18 oct. 2016 à 23:29
La réponse a déjà été donnée il y a 9 ans...
Et pour info, math.h n'est pas une bibliothèque.