Bueno otra vez yo molestado :/
se puede correr un progrma dentro de un menu :D
Gracias
:D
Si se puede, explicate mejor.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(){
char op='s';
char a='a';
char continuar='o';
do{
printf("**Bienvenido**\n");
printf("1-Metodos De Ordenamiento\n");
printf("2-Metodos De Busqueda\n");
printf("3 -Salir\n");
scanf("%c", &op);
switch(op){ //este es el switch del menu principal
case '1':
printf("**Metodos De Ordenamiento**\n");
printf("1- Burbuja\n");
printf("2- Quiksort\n");
scanf("%c", &a);
switch(a){ //este es el switch de sub menu de ordenamiento.
case '1':
printf("Burbuja \n"); //aqui llamaria a la funcion burbuja.
break; //despues de cada case debe poner un break.
case '2':
printf("Quiksort \n"); //aqui llamaria a la funcion quilsort
break;
} //aqui termina el switch del sub mmenu de ordenamiento.
break; //aqui termina el case del MENU PRINCIPAL!
case '2':
printf("Busqueda. \n");
//Aqui anida otro sqitch case.
break;
case '3':
printf("Gracias... \n");
continuar = 'S';
break;
default:
printf("Opcion invalida\n");
break;
}
system("pause");
system("cls");
}while(continuar != 's' && continuar != 'S');
}
Yo tengo ese codigo pero cuando le en la opcion de burbuja el programa de la burbuja debe de correr
me explico?? xD
¿Tienes un programa 'Burbuja' (el .exe o a.out) o un método Burbuja() ?
Si es el primer caso échale un vistazo a execv y en el segundo caso simplemente llama al método.
Me imagino que lo que tratas de hacer es una vez que, digamos, selecciones la opción burbuja, se ejecute todo el procedimiento.
Para llamar a una función seria mas o menos esto:
case '1':
printf("Burbuja \n"); //aqui solo imprime Burbuja
metodo_burbuja(); // Realmente aqui se llama a la funcion (supongo que no necesita argumentos)
break; //despues de cada case debe poner un break.
Espero haberte ayudado ;D
Cita de: enrmarc en 4 Agosto 2011, 22:35 PM
¿Tienes un programa 'Burbuja' (el .exe o a.out) o un método Burbuja() ?
Si es el primer caso échale un vistazo a execv y en el segundo caso simplemente llama al método.
En el caso de que necesites que se ejecute otro programa externo investiga sobre la librería execv como dice enrmarc (no la conozco)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(){
char op='s';
char a='a';
char continuar='o';
do{
printf("**Bienvenido**\n");
printf("1-Metodos De Ordenamiento\n");
printf("2-Metodos De Busqueda\n");
printf("3 -Salir\n");
scanf("%c", &op);
switch(op){ //este es el switch del menu principal
case '1':
printf("**Metodos De Ordenamiento**\n");
printf("1- Burbuja\n");
printf("2- Quiksort\n");
printf("3 -Regresar al menu Principal\n");
scanf("%c", &a);
switch(a){
case '1':
printf("Burbuja \n");
#define TAM 10000
int a[TAM], temp, i, j;
clrscr();
randomize(); //Inicializa el generador de numeros aleatorios
printf ("Llenando arreglo con números aleatorios\n");
for (i=0; i< TAM; i++)
a[i]=random(10000);
//Implementacion de Ordenamiento por burbuja de mayor a menor
for (j=1; j <= TAM; j++)
for (i=0; i< TAM-1; i++)
if (a[i] < a[i+1]){
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
printf ("\nArreglo ordenado\n");
for (i=0; i< TAM; i++)
printf ("a[%d] = %d\n", i, a[i]);
break;
case '2':
printf("Quiksort \n");
break;
}
break;
case '2':
printf("Metodos De Busqueda. \n");
printf("1- Secuencial\n");
printf("2- Binaria\n");
printf("3 -Regresar al menu Principal\n");
scanf("%c", &a);
switch(a){
case '1':
printf("Secuencial \n");
}
break;
case '2a':
printf("Quiksort \n");
break;
case '3':
printf("Gracias... \n");
continuar = 'S';
break;
default:
printf("Opcion invalida\n");
break;
}
system("pause");
system("cls");
}while(continuar != 's' && continuar != 'S');
}
Obviamente falta meter el quicksort y el metodo de busqueda
pero ahora tengo duda, cuando le doy 1 se mete al submenu metodos de ordenamiento y cuando le doy otro 1 deberia de correr el bubble sort pero no lo hace xD
(http://i.imgur.com/TA1Do.png)
No encuentro por que la falla, pero lo seguire pensando (esta es una respuesta rapida) :-X
Te recomiendo que metas todo esto en una función para que después la llames y asi sea más fácil de leer tu código :-*
//TODO ESTO EN UNA FUNCION
printf("Burbuja \n");
#define TAM 10000
int a[TAM], temp, i, j;
clrscr();
randomize(); //Inicializa el generador de numeros aleatorios
printf ("Llenando arreglo con números aleatorios\n");
for (i=0; i< TAM; i++)
a[i]=random(10000);
//Implementacion de Ordenamiento por burbuja de mayor a menor
for (j=1; j <= TAM; j++)
for (i=0; i< TAM-1; i++)
if (a[i] < a[i+1]){
temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
}
printf ("\nArreglo ordenado\n");
for (i=0; i< TAM; i++)
printf ("a[%d] = %d\n", i, a[i]);
break;