• Viernes 8 de Noviembre de 2024, 23:06

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - MoKoLoKo

Páginas: [1]
1
C/C++ / Re: Problema Con Calculadora Básica En C
« en: Sábado 1 de Marzo de 2008, 23:33 »
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
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <math.h>
  5.  
  6. int main()
  7. {
  8. float a,b,rs;
  9. char signo, op;
  10. printf ("Calculadora\n");
  11. inicio:
  12. printf ("Introduce un numero, el signo de la operacion (+, -, /, *) y el segundo numero\n");
  13. scanf ("%f", &a);
  14. scanf ("%c", &signo);
  15. scanf ("%f", &b);
  16. switch ( signo )
  17.        {
  18.        case '+':
  19.             rs=a+b;
  20.             break;
  21.        case '-':
  22.             rs=a-b;
  23.             break;
  24.        case '*':
  25.             rs=a*b;
  26.             break;
  27.        case '/':
  28.             if (b==0)
  29.                {
  30.                printf ("Imposible dividir entre 0\n");
  31.                goto inicio;
  32.                }
  33.             rs=a/b;
  34.             break;
  35.        default:
  36.             printf ("Error de sintaxis\n");
  37.        }
  38. printf ("%f\n", rs);
  39. system ("PAUSE\n");
  40. system ("CLS");
  41. goto inicio;
  42. return 0;
  43. }
  44.  

Gracias por la ayuda :comp:

2
C/C++ / Re: Problema Con Calculadora Básica En C
« en: Sábado 1 de Marzo de 2008, 13:41 »
Gracias por responder tan rápido :D

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.

3
C/C++ / Problema Con Calculadora Básica En C
« en: Sábado 1 de Marzo de 2008, 13:16 »
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
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. int main()
  6. {
  7. int a,b,rs;
  8. char signo,s,r,m,d,op;
  9. s='+'; r='-'; m='*'; d='/';
  10. printf ("Calculadora\n");
  11. inicio:
  12. printf ("\nIntroduce un numero, el signo de la operacion (+, -, /, *) y el segundo numero\n");
  13. scanf ("%i", &a);
  14. getche ("%c", &signo);
  15. scanf ("%i", &b);
  16. if (signo=s)
  17.    {
  18.    rs=a+b;
  19.    goto ver;
  20.    }
  21. if (signo=r)
  22.    {
  23.    rs=a-b;
  24.    goto ver;
  25.    }
  26. if (signo=d)
  27.    {
  28.    if (b==0)
  29.       {
  30.       printf ("Imposible dividir entre cero\n");
  31.       system ("PAUSE");
  32.       goto inicio;
  33.       }
  34.    else
  35.        {
  36.        rs=a/b;
  37.        goto ver;
  38.        }
  39.    }
  40. if (signo=m)
  41.    {
  42.    rs=a*b;
  43.    goto ver;
  44.    }
  45. else
  46.     {
  47.     printf ("Error, operación no valida o error de sintaxis\n");
  48.     system ("PAUSE");
  49.     }
  50. ver:
  51. printf ("%i\n", rs);
  52. system ("PAUSE");
  53. return 0;
  54. }
  55.  

El compilador que uso es Dev-C++

Gracias por adelantado :hola:

Páginas: [1]