Elevacion cubica

Iniciado por Jaua10, 26 Noviembre 2014, 05:18 AM

0 Miembros y 1 Visitante están viendo este tema.

Jaua10

No se hermano la verdad es que perdonarme pero ando demasiado bruto no se como hacerlo

Orubatosu

Así a bote pronto, creo que estás pensando que "Pow" eleva al cubo.

Si, pero no... eleva a cualquier exponente.

El modo correcto de usarlo es (por ejemplo)


float base, exponente, resultado // tres valores. la base, o numero que quieres elevar al cubo, el exponente, en este caso 3 (al cubo) y obviamente el resultado.
base = 10.33 // (por ejemplo)
exponente = 3 // o cualquier otro numero
resultado = pow(base, exponente);


Obviamente puedes acortar mucho la cosa. No hace falta usar la variable exponente (ni que sea doble, lo he hecho por sencillez). Podrías tranquilamente usar:


resultado = pow(base, 3);


A ver si así consigues que funcione.
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

Jaua10

#12
tengo mi programa asi

#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int numero,numero2,numero3,r2,r22,r23;
float base=10.33,exponente=3,resultado,resultado2,resultado3;
printf("Ingrese un valor: ");scanf("%d",&numero);
printf("Ingrese un valor: ");scanf("%d",&numero2);
printf("Ingrese un valor: ");scanf("%d",&numero3);
printf("\n");
r2=numero*numero;
r22=numero2*numero2;
r23=numero3*numero3;
resultado=(r2),pow(base,3);
resultado2=(r22),pow(base,3);
resultado3=(r23),pow(base,3);
printf("[%d][%d][%f]",numero,r2,resultado);
printf("\n\n");
printf("[%d][%d][%f]",numero2,r22,resultado2);
printf("\n\n");
printf("[%d][%d][%f]",numero3,r23,resultado3);
getch();
return 0;
}


y me da el siguiente error (15   26   C:\Users\Jesús\Desktop\nuevo.cpp   [Error] 'pow' was not declared in this scope)

Shell Root

#13
Se necesita declarar la función pow antes del main,
Código (cpp, 5) [Seleccionar]
#include<stdio.h>
#include<conio.h>
#include<math.h>

void pow(int e, int b);

main()
{
  int numero, numero2, numero3, r2, r22, r23;
  float base = 10.33, exponente = 3, resultado, resultado2, resultado3;
  printf("Ingrese un valor: "); scanf("%d",&numero);
  printf("Ingrese un valor: "); scanf("%d",&numero2);
  printf("Ingrese un valor: "); scanf("%d",&numero3);
  printf("\n");
  r2 = numero*numero;
  r22 = numero2*numero2;
  r23 = numero3*numero3;
  resultado = (r2), pow(base, 3);
  resultado2 = (r22), pow(base, 3);
  resultado3 = (r23), pow(base, 3);
  printf("[%d][%d][%f]", numero, r2, resultado);
  printf("\n\n");
  printf("[%d][%d][%f]", numero2, r22, resultado2);
 printf("\n\n");
 printf("[%d][%d][%f]", numero3, r23, resultado3);
 getch();
 return 0;
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

eferion

Cita de: Shell Root en 26 Noviembre 2014, 16:31 PM
Se necesita declarar la función pow antes del main

Y entonces para qué sirve #include <math.h> ???

Jaua10


eferion

Cita de: Jaua10 en 26 Noviembre 2014, 16:49 PM
me suelta este error

http://prntscr.com/5acmop

Lógico y normal. Te sale ese error porque no encuentra la implementación de una función con la firma void pow(int, int)

Además... se supone que "pow" debe devolver un valor... si no, ¿dónde se supone que va a almacenar el resultado? Los argumentos se los estás pasando por valor, no por punteros, por lo que no puede modificar esos valores.

Quita la declaración de ese pow. Si no te compila la aplicación es porque necesitarás añadir la librería math a tu proyecto de forma manual... quizás tengas que poner algo tal que "-lm" (sin comillas) en las directivas de compilación.

PD.: dado que la versión "pow" de math.h devuelve el resultado en forma de return, estaría bien que almacenases dicho valor en alguna variable, no se quizás algo tal que:

double resultado = pow( base, 3 );

Jaua10

sigue igual el codigo no me anda T_T

eferion

has probado lo que te he comentado de compilar con la opción -lm???

fary

No sé que problemas tenéis para utilizar esta función... es tan simple como esto.

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

int main()
{
   int resultado = pow(2,3); // dos elevado a tres

   printf("%i\n",resultado);

   return 0;
}
Un byte a la izquierda.