Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/02/2014, 15:54
CrazypiXel
 
Fecha de Ingreso: julio-2013
Ubicación: España
Mensajes: 51
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Ejercicio usar constante para dar nombre a un valor

En el siguiente ejemplo que me pone sobre como declarar una constante segun otras que previamente han sido declaradas..en lo que se dçcentra que es el uso de esa constante todo bien... lo que me desconcierta es que ahora usa variables int %i cuando una de las constantes es IMPUESTOS 1.16
.. no se supone que entonces deberia usar float o double para poder alvergar numeros que no sean enteros??? estoy perdido de cuando usa int y cuando long, o float o double.... osea con el tipo de variables que usa segun cuando... la teoria me la se pero luego veo ese ejemplo osanto %i cuiado una constante es un numero real me desconcierta... funciona el programa.. tb es cierto que da un resultado sin decimales.. proble a hacer el mismo programa cambiando el tipo de variable por double y en la linea de print %f y tb fuinciona solo que aqui da decimales...
el ejemplo es este: si alguien me echase una mano con que % debo usar generalmente y que tipo de variabel o algun manual especifico de ello me hecharia una gran mano:
Código c:
Ver original
  1. #include <stdio.h>
  2. #define CAJAS 4
  3. #define UNIDADES_POR_CAJA 25
  4. #define PRECIO_POR_UNIDAD 100
  5. #define IMPUESTOS 1.16
  6. #define PRECIO_POR_CAJA UNIDADES_POR_CAJA*PRECIO_POR_UNIDAD
  7. int main ()
  8. {
  9.    int precio;
  10.    precio=(CAJAS*PRECIO_POR_CAJA)*(IMPUESTOS);
  11.    printf("El precio total es %i",precio);
  12.    getchar();
  13.    return 0;
  14. }
Modificandolo asi pensando que debo usar numeros reales sin saber que resultado dara me queda asi y tb funciona lo que me da un resultado mucho mayor en decimales que no cambian el resultado vaya para mi seria asi lo correcto no?? pq en un programa donde numero de cajas sea una variable si nos piden un numero grande o que no sea entero el precio final seria lo conveniente no?..asi en vez de 11600 me da 11600.000000 como resultado, pero mas memoria innecesea no??
Código c:
Ver original
  1. #include <stdio.h>
  2. #define CAJAS 4
  3. #define UNIDADES_POR_CAJA 25
  4. #define PRECIO_POR_UNIDAD 100
  5. #define IMPUESTOS 1.16
  6. #define PRECIO_POR_CAJA UNIDADES_POR_CAJA*PRECIO_POR_UNIDAD
  7. int main ()
  8. {
  9.    float precio;
  10.    precio=(CAJAS*PRECIO_POR_CAJA)*(IMPUESTOS);
  11.    printf("El precio total es %f",precio);
  12.    getchar();
  13.    return 0;
  14. }