Anuncios Google

Programador novato intentando hacer una calculadora, ayuda por favor[solucionado]

buenas, he erealizado todos los tutoriales de esta comunidad y tenia pensado realizar una calculadora rudimentaria(solo las cuatro operaciones basicas y solo con enteros) con esos conocimientos. El programa empieza pidiendo un numero, luego solicita el segundo y la idea era que a cada operacion se le asignara un numero(Suma=1,Resta=2...) y traves de unos "If" la idea era que el programa reaccionara de forma diferente segun el numero intraducido, ej si introduces el uno que sume con el 2 que reste, pero lo hace todo de golpe. Pero bueno como siempre se dice un codigo vale mas que mil palablas.

#include <stdio.h>
/*el primer programa diseñado por mi mismo(sin tutoriales*/
 
int main(int argc, char *argv[])
{
  char c, operacion;
  int a, b, resultado;
 
    printf("Introduce un numero: ");
    scanf("%i",&a);
    getchar();
    printf("\n\nIntroduce otro numero: ");
    scanf("%i",&b);
    getchar();
    printf("\n\nIntroduce el numero de la operacion que \ndeseas realizar(suma=1, resta=2, multiplicacion=3, division=4): ");
    scanf("%c",&operacion);
    getchar();
    if (operacion = 1)
    {
          resultado = a + b;
          printf("Has elegido suma y el resultado es: %i", resultado);
    } 
    if (operacion = 2)
    {     
          resultado = a - b;
          printf("Has elegido resta y el resultado es: %i", resultado);
    }
    if (operacion = 3)
    {
          resultado = a * b;
          printf("Has elegido multiplicacion y el resultado es: %i", resultado);
    }
    if (operacion = 4)
    { 
          resultado = a / b;
          printf("Has elegido division y el resultado es: %i", resultado);
    }
  printf("Quieres seguir caculando Si=1/No=2? ");
  scanf("%c",&c);
  getchar(); 
  return 0;
}

y una imagen del programa tampoco sobraria:


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ishida_uryuu

Gracias

bien me habeis ayudado he tenido que cambiar la variable operacion a tipo int pero funciona ahora, solo faltaria realizar un bucle para que lo de "quieres seguir calculando?" funcione

Imagen de pspgorrister

Cierto lo del int

No me di cuenta de que era un char, con un char la sintaxis sería  if (operacion == '1') .En cualquier caso de ambas formas es correcto.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de ishida_uryuu

bueno no importa

ya la he conseguido acabar, solo sabe operar con numeros enteros, pero funciona y ya he creado el bucle. Lo que ahora me pregunto: ¿Que otra cosas puedo hacer con mis conocimientos(los de los tutoriales de aqui)?¿Deberia aumentar dichos conocimientos? De todos modos me pasare para ver el proximo tutorial.

Chao

Imagen de Guillermo_Cornielle

Bueno

Ya te han dado la respuesta correcta, estas asignando en vez de comparar, solo agrega otro signo de igualdad (=), en las condiciones.

;).


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Imagen de pspgorrister

Asignación en vez de comparación

No estás haciendo comparaciones (==) sino asignando (=). Al hacer una asignación en un if, lo que el if comprueba es el valor de la variable asignada como un boolean (mientras sea > 0, dará verdadero). El código sería con == como aquí:

    if (operacion == 1)
    {
          resultado = a + b;
          printf("Has elegido suma y el resultado es: %i", resultado);
    } 

Por cierto, nunca te va seguir calculando porque no hay ningún bucle, y el valor de c, nunca se compara.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.