buenas noches no sé cómo hacer x a la potencia y en cpp he intentado x**y pero no funciona!!! x^y tampoco funciona!!! si hay alguien que puede ayudarme por favor gracias de antemano, estoy trabajando en DEV C++ buenas noches
para obtener x elevado a la 2. La función está declarada en math.h
-- ¡El Parisien, es mejor tenerlo en papel!!! :-P
Xx_pussy_slayer_kevin_maltais_xX
gracias <3
abdeloihab
Autor
hola gracias Luffy pero cuando hago esto: float a,x,y; cin>>x,y; cout<<a;
yo doy: 2 luego 3 me da 1 como 2 a la potencia de 3??!! no sé por qué hasta luego
Luffy =)
Es porque cuando quieres recuperar 2 datos con una sola línea de código, hay que poner:
cin >> b >> c;
y ahí debería funcionar, porque lo he probado en casa, ¡y funciona de maravilla! -- ¡El Parisien, es mejor tenerlo en papel! :-P
abdeloihab
Autor
gracias mucho funciona muy bien hasta luego
Sisyph
Tengo un problema similar, pero con un exponente en forma de fracción:
2^(7/5) y pow no me da el resultado correcto (he probado con un caso simple, pow(100,1/2)
¿cómo puedo resolverlo?
ali
es necesario que los parámetros de entrada de pow sean de tipo double, este es un programa probado en Microsoft Visual Studio 2008 y da buenos resultados #include "stdafx.h" #include <math.h> #include <iostream> #include <stdio.h> using namespace std ;
Como se menciona más abajo, el error proviene del hecho de que una fracción de la forma n / m se evalúa como un entero (dado que n es de tipo int). Para estos casos, es necesario convertir n a double, por ejemplo.
Luego, en tu ejemplo de programa, incluyes muchos encabezados que no sirven para nada y haces una mezcla entre los encabezados de C y los operadores de C++. Así, tu programa se escribe de manera limpia como sigue:
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
Colaborador
Justo un pequeño error: printf("%f\n",pow(a, b)); (%f en lugar de %lf).
mamiemando
Moderador
Perfectamente, lo iba a decir ;-)
mamiemando
Moderador
Ah sí, pero atención 1/2 = parte_entera(0.5) = 0 en C (a diferencia de 1.0/2 que equivale a 0.5). ¡Quizás el problema venga de ahí!
Marcol417
no olvides importar la biblioteca math.h
fiddy
Colaborador
@Marcol417La respuesta ya se dio hace 9 años... Y para tu información, math.h no es una biblioteca.