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