Autor Tema: Error en "Calculadora"  (Leído 10364 veces)

Desconectado JalpWeb

  • Newbie
  • *
  • Mensajes: 6
Error en "Calculadora"
« en: 17 de Mayo de 2005, 02:05:01 pm »
Hola soy nuevo en esto de C y en clase estamos utilizando el Borland C++ 3.1, este codigo me da 6 errores. Que despues detallare el motivo q me da el programa:
Código: [Seleccionar]

#include"stdio.h"
main()
{
     char operacion [10];
     int num1;
     int num2;
     int result;
     printf ("Escribe la operación: suma, resta, multiplicacion");
     scanf ("%s",operacion);
          if (operacion) "suma"
               printf("Escribe el primer numero\n");
               scanf("%d",&num1);
               printf("Escribe el segundo numero\n");
               scanf("%d",&num2);
               result=num1+num2;
               printf("El resultado es %d\n",result);
          else
               if (operacion) "resta"
                    printf("Escribe el primer numero\n");
                    scanf("%d",&num1);
                    printf("Escribe el segundo numero\n");
                    scanf("%d",&num2);
                    result=num1-num2;
                    printf("El resultado es %d\n",result);
               else
                    if (operacion) "multiplicacion"
                         printf("Escribe el primer numero\n");
                         scanf("%d",&num1);
                         printf("Escribe el segundo numero\n");
                         scanf("%d",&num2);
                         result=num1*num2;
                         printf("El resultado es %d\n",result);
                    else
                         printf("La operación indicada no es valida");
}

En las tres lineas q sale: printf("Escribe el primer numero\n"); sale Estatement Missing ;.
En las tres lineas q sale: else sale Misplaced else

Desconectado fedelf

  • Iniciado
  • *****
  • Mensajes: 2060
  • Avatar By Dabo
    • Mi Flickr
Error en "Calculadora"
« Respuesta #1 en: 17 de Mayo de 2005, 02:16:21 pm »
Hace muchisimo que no programo, pero en los if, no deberia aparecer algun operador logico? igual, mayor que, menor que, distinto a, en fin, que sepa si eso es verdadero o falso.
Canon EOS 40D
18-55 EF-S / 70-200 F4 L IS USM / 50mm 1.4 pero aumentará   :smoke:

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
Error en "Calculadora"
« Respuesta #2 en: 17 de Mayo de 2005, 10:18:33 pm »
...hola...primero te falta algo sisntaxis en c...en primer lugar scanf("%tipo_dato",&variable)//no olvides el & y en segundo, hacen falta los corchetes de los if..espero ya te funciones sino...no dudes en preguntar...saludos... :wink: ...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

Desconectado Tania

  • Junior Member
  • **
  • Mensajes: 15
    • http://www.urbannoises.com
Error en "Calculadora"
« Respuesta #3 en: 20 de Mayo de 2005, 05:45:13 pm »
Jalp, por que no pruebas con un switch?? A mi lo del if no me parece que esté bien puesto, aunque voy a probarlo ahora...

Desconectado Tania

  • Junior Member
  • **
  • Mensajes: 15
    • http://www.urbannoises.com
Error en "Calculadora"
« Respuesta #4 en: 20 de Mayo de 2005, 05:59:24 pm »
Bueno, he conseguido que no de errores, aunque se sale al introducir la operacion, siempre dice que no es valida.

Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>
main()
{
     char operacion [10];
     int num1;
     int num2;
     int result;
     printf ("Escribe la operacion: suma, resta, multiplicacion\n");
     scanf ("%s",operacion);
          if (operacion=="suma")
               {
               printf("Escribe el primer numero\n");
               scanf("%d",&num1);
               printf("Escribe el segundo numero\n");
               scanf("%d",&num2);
               result=num1+num2;
               printf("El resultado es %d\n",result);
               }
               else
               if (operacion=="resta")
                    {
                    printf("Escribe el primer numero\n");
                    scanf("%d",&num1);
                    printf("Escribe el segundo numero\n");
                    scanf("%d",&num2);
                    result=num1-num2;
                    printf("El resultado es %d\n",result);
                    }
               else
                    if (operacion=="multiplicacion")
                         {
                         printf("Escribe el primer numero\n");
                         scanf("%d",&num1);
                         printf("Escribe el segundo numero\n");
                         scanf("%d",&num2);
                         result=num1*num2;
                         printf("El resultado es %d\n",result);
                         }
                    else
                         {
                         printf("La operacion indicada no es valida");
                         }
getch();
}

===============================
TE faltan las llaves en los if y, como decian antes, yo tambien creo que en el if debe ir un operador lógico. ESto es lo que yo he conseguido.

Besos!,
Tania

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
Error en "Calculadora"
« Respuesta #5 en: 20 de Mayo de 2005, 06:20:17 pm »
...bueno, antes me rectifico, no me habia dado cuenta que la opcion era una cadena, por lo que no necesita del &...Tania, me alegra leerte, la operacion te falla porque no puedes comparar cadenas con el ==, eso es para numeros, o a lo mucho para un caracter (o bueno se puede si el == esta sobrecargdao, pero eso se ve despues)...para comparar cadenas existe una funcion:
strcmp(cad1,cad2)//retorna 0 si las cadenas son iguales

...es decir:

if(operacion=="suma")// no se pùede

if(strcmp(operacion,"suma")==0)// es como se debe hacer


...Pero porque no mejor hacen un menu con numero. Por ejemplo:

1. Suma
2. Resta...

scanf("%d",%Opcion)

switch(Opcion){
  case 1:...
}

O

if(opcion==1)// aqui si se puede hacer eso...
... saludos...
 :twisted:
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

Desconectado Tania

  • Junior Member
  • **
  • Mensajes: 15
    • http://www.urbannoises.com
Error en "Calculadora"
« Respuesta #6 en: 20 de Mayo de 2005, 06:57:51 pm »
Jirho! Yo también me alegro de leerte!

Bueno, mi primera idea fue la del switch. Lo de comprar cadenas no lo sabia (aun no he llegado a esa parte, hehe) :P Pero vamos, que me esta gustando mucho esto, espero cogerle pronto el truco! Y gracias por lo de comprar cadenas, esta noche me mirare algunos ejemplos de eso :)

Un besazo enorme,
Tania

P.D. Aunque suene ridiculo me hace muchisima ilusion todo esto :P

Desconectado JalpWeb

  • Newbie
  • *
  • Mensajes: 6
Error en "Calculadora"
« Respuesta #7 en: 20 de Mayo de 2005, 07:45:13 pm »
Hola de nuevo y gracias por todo.

Haciendo unas pequeñas modificaciones con el menú con números me ha salido este código que si funciona a la perfección.

Código: [Seleccionar]
#include "stdio.h"
main()
int operacion;
int num1;
int num2;
int resultado;
{
printf ("Escriba el número de la operación que desee realizar:\n 1: Suma\n 2: Resta\n 3: Multiplicación\n  ");
scanf ("%d",&operacion);
if (operacion==1)
{
printf ("\nSuma\n");
printf (" Escriba el primer número con el que desee operar\n  ");
scanf ("%d",num1);
printf (" Escriba el segundo número con el que desee operar\n  ");
scanf ("%d",num2);
resultado=num1+num2;
printf ("El resultado es %d",resultado);
}
else {
if (operacion==2)
{
printf ("\nResta\n");
printf (" Escriba el primer número con el que desee operar\n  ");
scanf ("%d",num1);
printf (" Escriba el segundo número con el que desee operar\n  ");
scanf ("%d",num2);
resultado=num1-num2;
printf ("El resultado es %d",resultado);
}
else {
if (operacion==2)
{
printf ("\nMultiplicación\n");
printf (" Escriba el primer número con el que desee operar\n  ");
scanf ("%d",num1);
printf (" Escriba el segundo número con el que desee operar\n  ");
scanf ("%d",num2);
resultado=num1*num2;
printf (" El resultado es %d",resultado);
}
else
printf ("El número de operación indicado no es valido")
}}}


Lo que ahora me pregunto, ¿qué código debería de añadir al final para que me muestre un mensaje preguntando que si quiero hacer otra operación, que le tenga que poner si (que vuelva a empezar) o no (que salga del programa)? Se podría hacer con un scanf ¿verdad?

Pero lo que no se hacer es que vuelva a reiniciar el programa y lo de cerrar el programa.

Desconectado BuHo

  • Pro Member
  • ****
  • Mensajes: 733
    • La Estancia Azul
Error en "Calculadora"
« Respuesta #8 en: 21 de Mayo de 2005, 12:24:09 am »
Veo que has hecho una chapuza muy maja ;)

Lo de solucionar la comparacion de cadenas con numeros es una solucion pero no tienes ni idea de por qué fallaba antes, con lo cual no aprendes nada haciendolo asi.

En fin, te comento.

No puedes comparar cadenas de caracteres igualandolas. En su lugar, incluye la string.h en las cabeceras y para comparar dos cadenas haces asi:

if (strcmp(operacion,"suma")==0)

Eso te dira  si han escrito "suma" o no. Si sustituyes los
 if (operacion=="lo que sea")

por lo que te he dicho, tu programa funciona sin problemas.

Para repetir las operaciones, mete el codigo que quieras que se repita dentro de un bucle do-while que se repita hasta que el usuario diga "no".
Wake up BuHo...
Daboweb has you[/color]
Mi blog: La Estancia Azul

Desconectado jirho

  • Member
  • ***
  • Mensajes: 303
Error en "Calculadora"
« Respuesta #9 en: 21 de Mayo de 2005, 05:18:03 pm »
...oye Buho no me regañes delante del publico... :? ... :wink: ...
[root@local_host jirho]#Conecting to underground zone...:superman:

http://www.hackeando.com/gifs/logomini.gif

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License