Autor Tema: Problema de Switch en Dev C++

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

15 Agosto, 2010, 04:41 am
Leído 29658 veces

Seras Victoria

  • Sore wa...
  • Nuevo Usuario
  • Mensajes: 9
  • Karma: +0/-0
  • Sexo: Femenino
  • "la fisica es el pensamiento de Dios"
    • Koneko chan. el lugar de dibujos anime
Hola a todos.

en Estos dias he estado buscando una respuesta a mis dudas, y me tope con esta pagina.

En la Universidad nos han puesto un ejercicio de Switch para el Borland C++, pero igual este puede ser manejado en el Dev C++, mi duda es la siguiente.

Se debe crear un programa que calcule dos numeros y realize operaciones basicas (+,x,/,-) utilizando el ciclo DO/WHILE,
pero al final debe dar la opcion de SALIR, y este programa debe salir automaticamente.
por ejemplo:
do.......(el resto del programa)
.....................
printf("\n5.SALIR")
......................
   switch(opcion){case 5:{printf(\nSALIR);}
                        break;
                        default: printf("ERROR");
}
printf("el resultado es:..........
}while(opcion!=5)


asi lo he visto en la mayoria de programas, pero lamentablemente, el programa no sale con esta condicion.

Si no es de molestia, Subire lo que he realizado de mi programa; Solo necesito que esto funcione con condiciones, no con comandos.



PROGRAMA

#include<stdio.h>
#include<conio.h>


int main(void)
{
    char opcion;
    float n1,n2,r;     
    do{printf("\ningrese el primer numero: ");
       scanf("%f",&n1);
       printf("\ningrese el segundo numero: ");
       scanf("%f",&n2);
       
       printf("\nMENU DE OPCIONES");
       printf("\n1.SUMA\n2.RESTA\n3.MULTIPLICACION\n4.DIVISION\n5.SALIR ");
       printf("\nESCOGA SU OPCION: ");
       scanf("%s",&opcion);
       
       switch(opcion){ case '1': {r=n1+n2;}
                       break; 
                       case '2': {r=n1-n2;}
                       break; 
                       case '3': {r=n1*n2;}
                       break; 
                       case '4': {r=n1/n2;}
                       break; 
                       case '5': {printf("salir");}
                       break;
                       default:printf("\nerror...opcion invalidada");
                       
                      }
                      printf("el resultado de su opcion es: %.2f", r);
     
     }while(opcion!=5);
     
     getch();
     
}           
             
-----------------------------------------------------------
solo se; que puedo cambiar esta parte

case '5': {printf("salir");}
break;

por este

case '5': {exit(0);}
break;

pero no lo necesito; quiero que salga del programa con la condicion que se deba establecer

si es necesario de utilizar el IF y el ELSE. tambien me ayudarian mucho

muchas gracias por su atencion.
 :banghead:(no he podido con esto je!)

"No hay carcel mas Horrible, que la Ignorancia"--Pitagoras

15 Agosto, 2010, 11:44 pm
Respuesta #1

Eleal

  • Experto
  • Mensajes: 548
  • Karma: +0/-0
  • Sexo: Masculino
Hola Seras Victoria,

Probé el mismo programa que escribiste pero con los siguientes cambios y pareció funcionar:

1.- En la condición del do-while puse '5' (entre comillas simples para denotar el caracter '5' y no el número 5).
Código: [Seleccionar]
do {...} while ( opcion != '5' )
2.- Quité el include <conio.h>.
3.- Quité el getch() (que tal vez debería ser getchar()).

Saludos,

16 Agosto, 2010, 08:52 pm
Respuesta #2

Seras Victoria

  • Sore wa...
  • Nuevo Usuario
  • Mensajes: 9
  • Karma: +0/-0
  • Sexo: Femenino
  • "la fisica es el pensamiento de Dios"
    • Koneko chan. el lugar de dibujos anime
T_T me salvaste la patria....de verdad muchas gracias, me funciono a la perfeccion...si quizas por que era caracter no salia...pero muchas gracias n.n de verdad
"No hay carcel mas Horrible, que la Ignorancia"--Pitagoras