Viernes 8 de Noviembre de 2024, 17:59
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Calculadora Básica En C
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema Con Calculadora Básica En C (Leído 2716 veces)
MoKoLoKo
Nuevo Miembro
Mensajes: 3
Problema Con Calculadora Básica En C
«
en:
Sábado 1 de Marzo de 2008, 13:16 »
0
Hola, estoy empezando a programar en C de forma más o menos autodidacta (diría que mi profesor sabe aún menos que yo...
) y me he quedado atascado en un programa de calculadora, que haga sumas, restas, multiplicaciones y divisiones.
La estructura la tengo más o menos clara pero aunque las sumas y restas van bien, las multiplicaciones y divisiones dan resultados muy extraños (5*5=580, 12/2=587 ¿?).
Código: Text
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main()
{
int a,b,rs;
char signo,s,r,m,d,op;
s='+'; r='-'; m='*'; d='/';
printf ("Calculadora\n");
inicio:
printf ("\nIntroduce un numero, el signo de la operacion (+, -, /, *) y el segundo numero\n");
scanf ("%i", &a);
getche ("%c", &signo);
scanf ("%i", &b);
if (signo=s)
{
rs=a+b;
goto ver;
}
if (signo=r)
{
rs=a-b;
goto ver;
}
if (signo=d)
{
if (b==0)
{
printf ("Imposible dividir entre cero\n");
system ("PAUSE");
goto inicio;
}
else
{
rs=a/b;
goto ver;
}
}
if (signo=m)
{
rs=a*b;
goto ver;
}
else
{
printf ("Error, operación no valida o error de sintaxis\n");
system ("PAUSE");
}
ver:
printf ("%i\n", rs);
system ("PAUSE");
return 0;
}
El compilador que uso es Dev-C++
Gracias por adelantado
Tweet
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: Problema Con Calculadora Básica En C
«
Respuesta #1 en:
Sábado 1 de Marzo de 2008, 13:20 »
0
No mire mucho el codigo pero las comparacion estan mas, = es una ASIGNACION y == es una COMPARACION.
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
MoKoLoKo
Nuevo Miembro
Mensajes: 3
Re: Problema Con Calculadora Básica En C
«
Respuesta #2 en:
Sábado 1 de Marzo de 2008, 13:41 »
0
Gracias por responder tan rápido
He probado a cambiar las líneas de
signo=x
por
signo==x
o por
signo=='*'
pero con ese cambio siempre salta el mensaje de operación no valida...
Además me he dado cuenta de que el programa con el código que he puesto no reconoce los símbolos de multiplicación y división ya que los resultados de 1*1, 1/1 y 1q1 son el mismo (576), y no salta nunca el mensaje de operación no válida.
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: Problema Con Calculadora Básica En C
«
Respuesta #3 en:
Sábado 1 de Marzo de 2008, 14:03 »
0
El codigo que pusiste como te dije esta mal, tenes que comparar y no asignar, ademas de esos cambios asi con el VC++ 8 (2005) funciona:
Código: Text
scanf ("%i\r\n", &a);
scanf ("%c\r\n", &signo);
scanf ("%i", &b);
Proba, depura tu programa ...
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
MoKoLoKo
Nuevo Miembro
Mensajes: 3
Re: Problema Con Calculadora Básica En C
«
Respuesta #4 en:
Sábado 1 de Marzo de 2008, 23:33 »
0
Ya conseguí que funcionara, usé switch en vez de if-else y quedo bastante más claro el código, además tuve que añadir la libreria math.h
Código: Text
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float a,b,rs;
char signo, op;
printf ("Calculadora\n");
inicio:
printf ("Introduce un numero, el signo de la operacion (+, -, /, *) y el segundo numero\n");
scanf ("%f", &a);
scanf ("%c", &signo);
scanf ("%f", &b);
switch ( signo )
{
case '+':
rs=a+b;
break;
case '-':
rs=a-b;
break;
case '*':
rs=a*b;
break;
case '/':
if (b==0)
{
printf ("Imposible dividir entre 0\n");
goto inicio;
}
rs=a/b;
break;
default:
printf ("Error de sintaxis\n");
}
printf ("%f\n", rs);
system ("PAUSE\n");
system ("CLS");
goto inicio;
return 0;
}
Gracias por la ayuda
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Calculadora Básica En C