Problemilla con switch
Publicado por martel (1 intervención) el 14/11/2008 03:47:17
El problema es que cuando selecciono la opcion C, que es opcion de switch tambien, selecciono la operacion que quiero relizar , y cuando me muestra el resultado, automaticamente, me abre el otro case, aqui les dejo el programa :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main(void)
{
int n1,n2,n3,n,i,num[10]; n=1;i=0;
float ab,ac,ad,rf,rd,r,qw,qe,rs,qy,qt,ru,vc,vb,ri,rk,zx,zc;
char letra,letra2;
printf(" SELECCIONA UNA OPCION: A.-ESTRUCTURCA NORMAL B.-IF C.-SWITCH D.-WHILE E.-ARREGLO ");
scanf("%s",& letra);
switch (letra)
{
case 'A':
{
printf(" ESTRUCTURA NORMAL [PORCENTAJE] ");
printf(" INGRESE PRECIO DE ARTICULO 1: ");
scanf("%f",& ab);
printf(" INGRESE PRECIO DE ARTICULO 2: ");
scanf("%f",& ac );
printf(" INGRESE PRECIO DE ARTICULO 3: ");
scanf("%f",& ad );
r=ab+ac+ad;
rd=r*.25;
rf=r-rd;
printf(" EL TOTAL CON DESCUENTO ES: %f", rf);
printf(" ");
break;
}
case 'B':
{
printf(" IF [MAYOR DE 3 NUMEROS] ");
printf(" INGRESE PRIMER NUMERO: ");
scanf("%d",& n1);
printf(" INGRESE SEGUNDO NUMERO: ");
scanf("%d",& n2);
printf(" INGRESE TERCER NUMERO: ");
scanf("%d",& n3);
if(n1>n2)
{
if(n1>n3)
printf(" EL NUMERO MAYOR ES: %d", n1);
printf(" ");
}
else
{
if(n2>n3)
printf(" EL NUMERO MAYOR ES: %d", n2);
else
printf(" EL NUMERO MAYOR ES: %d", n3);
printf(" ");
}
break;
}
case 'C':
{
{
printf(" SWITCH ");
printf(" SELECCIONA LA OPERACION QUE DESEAS REALIZAR Q.-SUMAR W.-RESTAR E.-MULTIPLICAR R.-DIVIDIR ");
scanf("%s",& letra2);
switch(letra2)
{
case'Q':
{
printf(" [SUMANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& qw);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& qe);
rs=qw+qe;
printf(" EL RESULTADO DE LA SUMA ES: %f", rs);
printf(" ");
break;
}
case'W':
{
printf(" [RESTANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& qt);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& qy);
ru=qt-qy;
printf(" EL RESULTADO DE LA RESTA ES: %f", ru);
printf(" ");
break;
}
case'E':
{
printf(" [MULTIPLICANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& vc);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& vb);
ri=vc*vb;
printf(" EL RESULTADO DE LA MULTIPLICACION ES: %f", ri);
printf(" ");
break;
}
case'R':
{
printf(" [DIVIDIENDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& zx);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& zc);
rk=zx/zc;
printf(" EL RESULTADO DE LA DIVICION ES: %f", rk);
printf(" ");
break;
}
break;
}
case'D':
printf(" WHILE ");
while (n<=15)
{
printf(" CICLO: %d",n);
printf(" ");
n++;
}
break;
}
case'E':
{
for (i=0;i<=9;i++)
{
printf("Dar dato para la localidad %d ",i);
scanf("%d",& num[i]);
}
for (i=0;i<=9;i++)
printf(" el numero en la localidad %d es %d ",i,num[i]);
break;
}
{
}
}
}
}
Tambien quisiera saber , que funcion se utiliza para poder volver al menu principal despues de aber seleccionado un case, eh utilizado return, pero no me funciona , o no se como utilizarlo, bueno agradeceria mucho que me presten su ayuda.
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main(void)
{
int n1,n2,n3,n,i,num[10]; n=1;i=0;
float ab,ac,ad,rf,rd,r,qw,qe,rs,qy,qt,ru,vc,vb,ri,rk,zx,zc;
char letra,letra2;
printf(" SELECCIONA UNA OPCION: A.-ESTRUCTURCA NORMAL B.-IF C.-SWITCH D.-WHILE E.-ARREGLO ");
scanf("%s",& letra);
switch (letra)
{
case 'A':
{
printf(" ESTRUCTURA NORMAL [PORCENTAJE] ");
printf(" INGRESE PRECIO DE ARTICULO 1: ");
scanf("%f",& ab);
printf(" INGRESE PRECIO DE ARTICULO 2: ");
scanf("%f",& ac );
printf(" INGRESE PRECIO DE ARTICULO 3: ");
scanf("%f",& ad );
r=ab+ac+ad;
rd=r*.25;
rf=r-rd;
printf(" EL TOTAL CON DESCUENTO ES: %f", rf);
printf(" ");
break;
}
case 'B':
{
printf(" IF [MAYOR DE 3 NUMEROS] ");
printf(" INGRESE PRIMER NUMERO: ");
scanf("%d",& n1);
printf(" INGRESE SEGUNDO NUMERO: ");
scanf("%d",& n2);
printf(" INGRESE TERCER NUMERO: ");
scanf("%d",& n3);
if(n1>n2)
{
if(n1>n3)
printf(" EL NUMERO MAYOR ES: %d", n1);
printf(" ");
}
else
{
if(n2>n3)
printf(" EL NUMERO MAYOR ES: %d", n2);
else
printf(" EL NUMERO MAYOR ES: %d", n3);
printf(" ");
}
break;
}
case 'C':
{
{
printf(" SWITCH ");
printf(" SELECCIONA LA OPERACION QUE DESEAS REALIZAR Q.-SUMAR W.-RESTAR E.-MULTIPLICAR R.-DIVIDIR ");
scanf("%s",& letra2);
switch(letra2)
{
case'Q':
{
printf(" [SUMANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& qw);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& qe);
rs=qw+qe;
printf(" EL RESULTADO DE LA SUMA ES: %f", rs);
printf(" ");
break;
}
case'W':
{
printf(" [RESTANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& qt);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& qy);
ru=qt-qy;
printf(" EL RESULTADO DE LA RESTA ES: %f", ru);
printf(" ");
break;
}
case'E':
{
printf(" [MULTIPLICANDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& vc);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& vb);
ri=vc*vb;
printf(" EL RESULTADO DE LA MULTIPLICACION ES: %f", ri);
printf(" ");
break;
}
case'R':
{
printf(" [DIVIDIENDO] ");
printf(" INGRESA PRIMER NUMERO: ");
scanf("%f",& zx);
printf(" INGRESA SEGUNDO NUMERO: ");
scanf("%f",& zc);
rk=zx/zc;
printf(" EL RESULTADO DE LA DIVICION ES: %f", rk);
printf(" ");
break;
}
break;
}
case'D':
printf(" WHILE ");
while (n<=15)
{
printf(" CICLO: %d",n);
printf(" ");
n++;
}
break;
}
case'E':
{
for (i=0;i<=9;i++)
{
printf("Dar dato para la localidad %d ",i);
scanf("%d",& num[i]);
}
for (i=0;i<=9;i++)
printf(" el numero en la localidad %d es %d ",i,num[i]);
break;
}
{
}
}
}
}
Tambien quisiera saber , que funcion se utiliza para poder volver al menu principal despues de aber seleccionado un case, eh utilizado return, pero no me funciona , o no se como utilizarlo, bueno agradeceria mucho que me presten su ayuda.
Valora esta pregunta


0