elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con float y double!!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con float y double!!!!  (Leído 4,003 veces)
EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
Problema con float y double!!!!
« en: 8 Mayo 2014, 19:52 pm »

Hola a todos perdón por molestarlos pero tengo un problema lo que pasa es que estoy haciendo un programa que lea 30 números y los convierta a grados kelvin, lo tengo que hacer por medio de funciones y arreglos, esto es lo que llevo:

#include <stdio.h>
#define MAX 30
void introducir(float *grados)
{
    int i;
    float cel[50];
    printf("Dame 30 valores de grados a convertir en grados celsius:\n");
    for(i=0;i<MAX;i++){
        printf("Numero %d >>>> ",i+1);
        scanf("%f",&cel);
        while(getchar()!='\n');
    }
}
float kelvin(float *grados)
{
    int i;
    float kel[50];
    for(i=0;i<MAX;i++){
        kel = &grados-273.15;
        return kel;
    }
}
int main()
{
    float far[50],kel[50],grados[50];
    introducir(grados);
    printf("Grados Kelvin:\n");
    printf("%f",kelvin(grados));
    return 0;
}

El problema es que cuando compilo me sale el siguiente error: :-X :-X error: invalid operands to binary - (have 'float *' and 'double')| a que se debe ese error y como puedo corregirlo :huh: :huh: :huh: muchas gracias por su ayuda


En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Problema con float y double!!!!
« Respuesta #1 en: 8 Mayo 2014, 21:02 pm »

Para convertir grados Celsius a Kelvin la formula seria

Código
  1. Kelvin = Celsius + 273.15

Tu codigo con las debidas correcciónes

Código
  1. #include <stdio.h>
  2. #define MAX 30
  3.  
  4. void introducir(float *grados){
  5.    int i;
  6.    printf("Dame 30 valores de grados a convertir en grados celsius:\n");
  7.    for( i = 0; i < MAX; i++ ){
  8.        printf("Numero %d >>>> ",i+1);
  9.        scanf(" %f", &grados[i]);
  10.    }
  11. }
  12. void kelvin(float *grados, float * kel){
  13.    int i;
  14.    for( i = 0; i < MAX; i++ ){
  15.        kel[i] = grados[i] + 273.15;
  16.        printf("%f\n", kel[i]);
  17.    }
  18. }
  19. int main(void)
  20. {
  21.    float kel[MAX], grados[MAX];
  22.  
  23.    introducir(grados);
  24.    printf("Grados Kelvin:\n\n");
  25.    kelvin(grados, kel);
  26.  
  27.    return 0;
  28. }
  29.  

Debes publicar tu codigo con las etiquetas GeSHi C de lo contrario algunos caracteres no aparecen

Saludos


« Última modificación: 8 Mayo 2014, 21:09 pm por Blaster » En línea

EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
Re: Problema con float y double!!!!
« Respuesta #2 en: 8 Mayo 2014, 21:34 pm »

Muchas gracias Blaster me ayudaste bastante gracias y claro voy a investigar como poner el código fuente en etiquetas GeSHi C  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: Problema con float y double!!!!
« Respuesta #3 en: 14 Mayo 2014, 23:41 pm »

y claro voy a investigar como poner el código fuente en etiquetas GeSHi C  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)

Cuando quieras poner un código, donde están las opciones para dar formato al texto (parte superior donde escribes), hay un desplegable a la derecha que pone GeSHi  :rolleyes:

Saludos
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Problema con float y double!!!!
« Respuesta #4 en: 22 Mayo 2014, 04:02 am »

Mmmmm, perfecto pero yo opino que si sólo quiere imprimir los valores en Kelvin no es necesario el segundo argumento en la función kelvin(). Bastaría con:
Código
  1. #include <stdio.h>
  2. #define MAX 30
  3.  
  4. void kelvin(float *grados ){
  5.    int i, float kel;
  6.    for( i = 0; i < MAX; i++ ){
  7.        kel = grados[i] + 273.15;
  8.        printf("%f\n", kel);
  9.    }
  10. }
  11. }
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Problema con float y double!!!!
« Respuesta #5 en: 22 Mayo 2014, 22:34 pm »

Inesperada la salida que obtengo con el código de Blaster:

Citar

Dame 3 valores de grados a convertir en grados celsius:
Numero 1 >>>> 100
Numero 2 >>>> 200
Numero 3 >>>> 300
Grados Kelvin:

373.149994
473.149994
573.150024


No así con el de yoel_alejandro:

Citar

Dame 3 valores de grados a convertir en grados celsius:
Numero 1 >>>> 100
Numero 2 >>>> 200
Numero 3 >>>> 300
Grados Kelvin:

373.150000
473.150000
573.150000


Análogo al de usar %g en lugar de %f:

Código
  1. void kelvin(float *grados, float * kel){
  2.    int i;
  3.    for( i = 0; i < MAX; i++ )
  4.      printf("%g\n", kel[i] = grados[i] + 273.15);
  5. }

Citar

Dame 3 valores de grados a convertir en grados celsius:
Numero 1 >>>> 100
Numero 2 >>>> 200
Numero 3 >>>> 300
Grados Kelvin:

373.15
473.15
573.15


¿Alguna sugerencia a este comportamiento del %f?.

¡¡¡¡ Saluditos! ..... !!!!





En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Problema con float y double!!!!
« Respuesta #6 en: 23 Mayo 2014, 01:57 am »

¿Alguna sugerencia a este comportamiento del %f?.

En el modo de operar del especificador %f no hay nada estraño, debes tener encuenta que son diferentes y cada uno procesa el valor con diferente precisiónes, obten mas información al respecto en esta pagina

http://support.microsoft.com/kb/43392/es

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MYSQL] Problema con float
PHP
Alex_bro 3 16,856 Último mensaje 29 Marzo 2009, 19:54 pm
por ^Tifa^
Como pasar texto a ASCII-HEX-Binary-Float-Double ??
Programación Visual Basic
****the dark**** 5 4,630 Último mensaje 21 Octubre 2011, 01:49 am
por raul338
Problema con la precisión del double
Java
danielo- 4 5,466 Último mensaje 27 Marzo 2012, 21:07 pm
por danielo-
Problema con undefined reference to `Shoot::Shoot(float,float)´
Programación General
nakas95 2 2,306 Último mensaje 20 Mayo 2014, 00:17 am
por nakas95
Pasar un double como argumento en una función definida como float
Programación C/C++
fafafa01 1 2,889 Último mensaje 30 Junio 2016, 11:02 am
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines