Signaler

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

Posez votre question abdeloihab 85Messages postés mercredi 4 mai 2005Date d'inscription 14 septembre 2007 Dernière intervention - Dernière réponse le 15 sept. 2017 à 20:37 par Xx_pussy_slayer_kevin_maltais_xX
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
Utile
+19
plus moins
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
Xx_pussy_slayer_kevin_maltais_xX- 15 sept. 2017 à 20:37
merci <3
Répondre
Utile
+2
plus moins
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
Utile
+1
plus moins
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 85Messages 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
Utile
+0
plus moins
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?
ali- 15 mars 2012 à 15:04
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 27971Messages postés jeudi 12 mai 2005Date d'inscription ModérateurStatut 8 octobre 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 11141Messages postés samedi 5 mai 2007Date d'inscription ContributeurStatut 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 27971Messages postés jeudi 12 mai 2005Date d'inscription ModérateurStatut 8 octobre 2017 Dernière intervention - 15 mars 2012 à 23:32
Parfaitement, j'allais le dire ;-)
Utile
+0
plus moins
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à !
Marcol417- 18 oct. 2016 à 16:35
n'oublie pas d'importer la bibliotheque math.h
Répondre
fiddy 11141Messages postés samedi 5 mai 2007Date d'inscription ContributeurStatut 18 octobre 2016 Dernière intervention - 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.
Répondre

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !