Foros del Web » Programación para mayores de 30 ;) » C/C++ »

elevar un numero a una fraccion o a un float C

Estas en el tema de elevar un numero a una fraccion o a un float C en el foro de C/C++ en Foros del Web. estoy haciendo una practica de programacion en C de clase y tengo que hacer la siguiente operacion(1/2)^(h/t) donde h y t son dos valores que ...
  #1 (permalink)  
Antiguo 25/11/2010, 13:20
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta elevar un numero a una fraccion o a un float C

estoy haciendo una practica de programacion en C de clase y tengo que hacer la siguiente operacion(1/2)^(h/t) donde h y t son dos valores que introduce el usuario por teclado

he mirado la funcion pow(); pero no me sirve

a ver si me podeis dar algo de luz, muchas gracias.
  #2 (permalink)  
Antiguo 25/11/2010, 14:09
 
Fecha de Ingreso: noviembre-2010
Ubicación: Mexico
Mensajes: 6
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: elevar un numero a una fraccion o a un float C

El problema es que 1/2 es una división de enteros, y te manda un resultado en enteros y no existe el 0.5 en enteros, entonces deberías usar 1/2.0 para obtener un tipo de dato float.

(1/2.0)^(h/t)


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

main()
{
int h, t;
float potencia;
printf("Introducir h y t: \n");
scanf("%d %d",&h,&t);
potencia = pow((1.0/2.0),(h/t));
printf("%.3f\n\n",potencia);
system("pause");
}

Si no, haber si alguien mas te ayuda.
  #3 (permalink)  
Antiguo 25/11/2010, 14:42
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: elevar un numero a una fraccion o a un float C

entiendo lo que dices, pero no me termina de funcionar ese codigo, me muestra 0.000 cuando imprimo por pantalla la variable potencia

edit: ya me sale, llevas razon tu codigo es correcto, el fallo ha sido que he declarado, sin darme cuenta, la variable potencia como entero. Muchisimas gracias por todo
  #4 (permalink)  
Antiguo 25/11/2010, 21:08
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: elevar un numero a una fraccion o a un float C

El problema con el codigo, es que h y t, pueden ser enteros, por lo tanto tienes otra division de enteros.

Tienes que declarar tus variables como float, y en lugar de utiliza 1/2, utiliza 0.5^(h/t)
asi deberia de funcionar.
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.     float h, t, respuesta;
  6.     printf("Ingresa los valores de h y t:");
  7.     scanf("%f",&h);
  8.     scanf("%f",&t);
  9.     respuesta = pow(0.5,h/t);
  10.     printf("\nResultado = %f",respuesta);
  11.     return 0;
  12. }

Última edición por AlanChavez; 25/11/2010 a las 21:39

Etiquetas: float, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.