Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2014, 14:47
AORV
 
Fecha de Ingreso: diciembre-2012
Ubicación: Jardim Alegre
Mensajes: 25
Antigüedad: 11 años, 4 meses
Puntos: 0
Switch case dentro de otro switch C

Hola, tengo que hacer un codigo donde voy a hacer un menu con varias opciones y que cada opcion de otro submenu me explico:

Cita:
Realizar un programa que permita mostrar las opciones
Menu:
1. Estructuras selectivas I
(Submenu)
a. Problema 1
b. Problema 2
2. Estructuras selectivas II
(Submenu)
a. Problema 3
b. Problema 4
3. Estructuras selectivas III
(Submenu)
a. Problema 5
b. Problema 6
4. Salir
El problema es que cuando en el primer submenu le doy que me de la opcion 2 osea el problema 2 me muestra el 1, si pongo 1 si pone el que es el 1 pero no con el 2 estoy algo confuso .
Los programas son copy paste de programas que ya hice les pongo el codigo que llevo.
Código:
#include <stdio.h>
int main (void)
{
	float a, b, r, f, p, h, pi=3.1416, m,mc, opcion2;
	int opcion;
	
	
		
	printf("\tSeleccione el numero del tipo de problema que deseas: ");
	printf("\n1. Estructuras selectivas IF");
	printf("\n2. Estructuras selectivas multiples");
	printf("\n3. Estructuras de repeticion FOR");
	printf("\n4. Salir ");
	scanf("%d", &opcion);
		do{
	switch (opcion)
	{
		case 1:
		printf("\tSeleccione el numero operacion que desea hacer: ");
		printf("\n1. Algoritmo de relacion en 2 numeros");
		printf("\n2. Dosis Medicamento");
		printf("\n3. Regresar");
		scanf("%d", &opcion2);
		switch (opcion)
	
			
			case 1:
			printf("\n1. Algoritmo de relacion en 2 numeros");
			printf("introduzca valor de a: ");
			scanf("%d", &a);
			printf("introduzca valor de b: ");
			scanf("%d", &b);
			switch (opcion)
			if(a<b) 
			{
		        	
			printf("a es menor que b\n");
			
			
			}
			if(a<=b) 
			{
		        	
			printf("a es menor igual que b\n");
				
			}
		
			if(a<b) 
			{
		        	
			printf("a no es mayor que b\n");
				
			
			}
			if(a<=b) 
			{
		        	
			printf("a no es mayor igual que b\n");
				
			
			}
			if(a!=b) 
			{
		        	
			printf("a es diferente de b\n");
				
			
			}
			if(a!=b) 
			{
		        	
			printf("a no es igual a b\n");
				
			
		
			}
			break;
			
			case 2:
				printf("\tSeleccione Genero\n");
				printf("Escriba 1 si es Mujer o 2 si es Hombre: ");
				scanf("%d",&opcion);
				switch (opcion)
			{
			case 1:
			printf("indica masa corporal: ");   //Mujer
			scanf("%d", &mc);
			
		    if(mc>80)
			{
		        	
			printf("Su dosis es de 800 mg\n");
			break;
		    }  
		    if(mc>=60&&mc<80)
			{
		        	
			printf("Su dosis es de 600 mg\n");
			break;
		    }  
		    if(mc<60)
			{
		        	
			printf("Su dosis es de 400 mg\n");
			break;
		    }  
		    
		    case 2:
			printf("indica masa corporal: ");   //Hombre
			scanf("%d", &mc);
			
		    if(mc>100)
			{
		        	
			printf("Su dosis es de 1000 mg\n");
			break;
		    }  
		    if(mc>=80&&mc<100)
			{
		        	
			printf("Su dosis es de 800 mg\n");
			break;
		    }  
		    if(mc>=60&&mc<80)
			{
		        	
			printf("Su dosis es de 600 mg\n");
			break;
		    }  
		     if(mc<60)
		    {
		        	
			printf("Su dosis es de 400 mg\n");
			break;
      
}
	
	}

	break;
	
	default:
printf("error ingrese de nuevo");
	break;
	
	}
	
	printf("\tSeleccione el numero del tipo de problema que deseas: ");
	printf("\n1. Estructuras selectivas IF");
	printf("\n2. Estructuras selectivas multiples");
	printf("\n3. Estructuras de repeticion FOR");
	printf("\n4. Salir ");
	scanf("%d", &opcion);
	
}
	while(opcion!=5);
	

	return 0;
	
	
}
PD: El do while es opcional.
Gracias de antemano