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

Calculadora de múltiples operaciones

Estas en el tema de Calculadora de múltiples operaciones en el foro de C/C++ en Foros del Web. Buenas Tardes. Como se ve en la imagen tengo un problema en las operaciones de division, quiero que me de con decimales pero no lo ...
  #1 (permalink)  
Antiguo 18/07/2012, 13:49
 
Fecha de Ingreso: julio-2012
Ubicación: Caracas
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Calculadora de múltiples operaciones

Buenas Tardes.



Como se ve en la imagen tengo un problema en las operaciones de division, quiero que me de con decimales pero no lo logro, lo intente cambiando el valor resultado, con la variable float, pero me daba 0. por favor si alguien podría decirme el error que tengo. creo que es un problema con decimales, no tengo problema con números enteros. apenas estoy en el segundo semetre de informática y apenas estoy entrando en materia.

Cita:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int opcion,a,b,resultado;
printf("Ingrese el primer numero entero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero entero: ");
scanf("%d",&b);
printf("Menu\n");
printf("1. Sumar\n");
printf("2. Restar\n");
printf("3. Dividir\n");
printf("4. Multiplicar\n");
printf("Elija una operacion: ");
scanf("%d",&opcion);
switch(opcion)
{
case 1:
resultado=a+b;
printf("%d + %d = %d\n",a,b,resultado);
break;
case 2:
resultado=a-b;
printf("%d - %d = %d\n",a,b,resultado);
break;
case 3:
resultado=a/b;
printf("%d / %d = %d\n",a,b,resultado);
break;
case 4:
resultado=a*b;
printf("%d x %d = %d\n",a,b,resultado);
break;
default:
printf("Opcion no valida\n");
break;
}
system ("PAUSE");
}
  #2 (permalink)  
Antiguo 18/07/2012, 13:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 77
Antigüedad: 13 años, 4 meses
Puntos: 11
Respuesta: Calculadora de múltiples operaciones

Debes cambiar la variable resultado a float y luego, cuando llamas printf, reemplaza "%d" por "%f".

Cuando cambiaste la variable a float, le seguías diciendo a printf que mostrase enteros, por eso daba 0.

Edito:

Lo hice así y me funciono, no se si hay otras maneras pero solo se me ocurrió esta :

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int opcion, a, b;
  7.     float resultado;
  8.     printf("Ingrese el primer numero entero: ");
  9.     scanf("%d",&a);
  10.     printf("Ingrese el segundo numero entero: ");
  11.     scanf("%d",&b);
  12.     printf("Menu\n");
  13.     printf("1. Sumar\n");
  14.     printf("2. Restar\n");
  15.     printf("3. Dividir\n");
  16.     printf("4. Multiplicar\n");
  17.     printf("Elija una operacion: ");
  18.     scanf("%d",&opcion);
  19.  
  20.     switch(opcion)
  21.     {
  22.         case 1:
  23.             resultado=(float)a+b;
  24.             printf("%f + %f = %f\n",a,b,resultado);
  25.             break;
  26.         case 2:
  27.             resultado=(float)a-b;
  28.             printf("%d - %f = %f\n",a,b,resultado);
  29.             break;
  30.         case 3:
  31.             resultado=(float)a/b;
  32.             printf("%d / %d = %f\n",a,b,resultado);
  33.             break;
  34.         case 4:
  35.             resultado=(float)a*b;
  36.             printf("%d x %d = %f\n",a,b,resultado);
  37.             break;
  38.         default:
  39.             printf("Opcion no valida\n");
  40.             break;
  41.     }
  42.  
  43.     system ("PAUSE");
  44. }
__________________
Convert JSON to CSV

Última edición por versinlimites; 18/07/2012 a las 14:07
  #3 (permalink)  
Antiguo 18/07/2012, 14:13
 
Fecha de Ingreso: julio-2012
Ubicación: Caracas
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Calculadora de múltiples operaciones

Coloque, la variable float, y sustituí %d por %f.

Ahora me sale otro error, cuando realizo la operación, divido 10/3 y el resultado es 3,00000.
Cuando el resultado debería ser 3,33333. cual es el error?
  #4 (permalink)  
Antiguo 18/07/2012, 14:20
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Calculadora de múltiples operaciones

Buenas,

Las variables a y b deberían ser float para realizar las operaciones con decimales, porque en tu caso, al ser variables int, se realiza una división entera.

Si no quieres cambiar el tipo de las variables, tendrías que convertir alguna de las dos variables a float antes de realizar la división:

Código C++:
Ver original
  1. resultado = ((float)a)/b

Saludos.
  #5 (permalink)  
Antiguo 18/07/2012, 14:28
 
Fecha de Ingreso: julio-2012
Ubicación: Caracas
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Calculadora de múltiples operaciones

Muchas Gracias, ya me dio resultado correcto.
Aprendí algo nuevo hoy.

Etiquetas: calculadora, int, operaciones, variables
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 16:58.