[Solucionado] Problema al crear Calculadora

Iniciado por JosebaliX, 15 Agosto 2014, 15:04 PM

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

JosebaliX

Lo primero, soy novato en esto, solo llevo 2 días en esto y no tengo mucha idea...

Bueno, he hecho esto, pero tengo un problema y es que escoja lo que escoja, me lo suma :S

Y la verdad es que no se que le pasa.

Si pudierais ayudarme...

#include <stdio.h>

int main () {
   int x, i, y;
   
   printf ("CALCULADORA\n\n");
   system ("pause");
   
   printf ("\n\nEscriba un numero: ");
   scanf ("%i",&x);
   
   
   printf ("\n\nEscriba el simbolo matematico para realizar la operacion: ");
   printf("\n\n1 = Sumar / 2 = Restar / 3 = Multiplicar / Dividir = 4 / : ");
   scanf("%f", &y);
   
   
   printf ("\n\nEscriba otro numero: ");
   scanf ("%i",&i);
   
   printf ("\n\n");
   
   system ("pause");
   
   if (y = 1) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x+i);
   
   } else if (y = 2) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x-i);
   
   } else if (y = 3) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x*i);
   
   } else if (y = 4) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x/i);
   
   } else {
      
      printf ("\n\nEl simbolo matematico es incorrecto.\n\n");
   }
   
   printf ("\n\n");
   
   system ("pause");
   return 0;
}
   

PD: Si esta muy mal no os riáis de mi please :)

GRACIAS :D

ivancea96

#1
"if(y=1)"
El operador '=' es de asignación. Si quieres comparar, es '=='.


PD: Recuerda poner las etiquetas GeSHi para los códigos.

Quedaría así:
if(y==1){}

JosebaliX

Cita de: ivancea96 en 15 Agosto 2014, 15:24 PM
"if(y=1)"
El operador '=' es de asignación. Si quieres comparar, es '=='.


PD: Recuerda poner las etiquetas GeSHi para los códigos.

Quedaría así:
if(y==1){}

Al poner eso me sale; El simbolo matematico es eincorrecto, es decir me lleva a:

else {
      
      printf ("\n\nEl simbolo matematico es incorrecto.\n\n");
   }

Y no se porque, ya que si pongo un numero del 1 al 4

:S

JosebaliX

Cita de: JosebaliX en 15 Agosto 2014, 15:33 PM
Al poner eso me sale; El simbolo matematico es incorrecto, es decir me lleva a:

else {
      
      printf ("\n\nEl simbolo matematico es incorrecto.\n\n");
   }

Y no se porque, ya que si pongo un numero del 1 al 4

:S

ivancea96

Pusiste el "==" en todos no? Pon el código de nuevo a ver qué puede ser.

JosebaliX

Cita de: ivancea96 en 15 Agosto 2014, 15:36 PM
Pusiste el "==" en todos no? Pon el código de nuevo a ver qué puede ser.

Si, mira:

#include <stdio.h>

int main () {
   int x, i, y;
   
   printf ("CALCULADORA\n\n");
   system ("pause");
   
   printf ("\n\nEscriba un numero: ");
   scanf ("%i",&x);
   
   
   printf ("\n\nEscriba el simbolo matematico para realizar la operacion: ");
   printf("\n\n1 = Sumar / 2 = Restar / 3 = Multiplicar / Dividir = 4 / : ");
   scanf("%f", &y);
   
   
   printf ("\n\nEscriba otro numero: ");
   scanf ("%i",&i);
   
   printf ("\n\n");
   
   system ("pause");
   
   if (y == 1) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x+i);
   
   } else if (y == 2) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x-i);
   
   } else if (y == 3) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x*i);
   
   } else if (y == 4) {
      
      printf ("\n\nEl resuldado es: %i.\n\n",x/i);
   
   } else {
      
      printf ("\n\nEl simbolo matematico es incorrecto.\n\n");
   }
   
   printf ("\n\n");
   
   system ("pause");
   return 0;
}

ivancea96

Las etiquetas GeSHi, ponlas en el código.

Pusiste "scanf("%f", &y);". %f es para float. "%i" es para enteros. Pon %i.

JosebaliX

Cita de: ivancea96 en 15 Agosto 2014, 15:42 PM
Las etiquetas GeSHi, ponlas en el código.

Pusiste "scanf("%f", &y);". %f es para float. "%i" es para enteros. Pon %i.

Es verdad xD Menudo fallo mas... Si, es que primero estuve trasteando con los float y al parecer se me olvido cambiarlo xDD.

MUCHAS GRACIAS
:D