hola amigos lo que sucede es que tngo los algoritmos de burbuja,seleccion e insercion en C pero los tngo por separado y lo que necesito es unirlos en un menu es decir me de la opcion de q tipo de algoritmo de ordenamiento usare xfa si pueden ayudarme
Osea, tienes varios métodos y quieres decidir como usuario el método a usar? Fácil, con varios If o un Switch (Con el Switch, recomiendo yo)
SI posteas el código, te ayudamos ^^
Te recomiendo leer este tema creado por do-while
http://foro.elhacker.net/programacion_cc/para_que_dejeis_de_preguntar_de_una_vez_por_los_menus-t276719.0.html
Salu10.
este es el codigo q tngo esta claro q me falta el menu principal y el traspaso de parametros para el arreglo a[] porfa ayudenme
#include<stdio.h>
#include<conio.h>
void burbuja(a[],int n)
{
int i,j,aux;
for(i=1;i<n;i++)
for(j=o;j<n-1;j++)
{
if(a[j]>a[j+1])
{
aux=a[j];
a[j]=a[j+1];
a[j+1]=aux;
}
}
}
void insercion((a[],int n)
{
int i,j,aux;
for(i=1;i<n;i++)
{
j=i;
aux=a;
while(j>0 && aux < a[j-1])
{
a[j]=a[j-1];
j--;
}
a[j]=aux;
}
}
void seleccion(a[],int n)
{
int i,j,indicemenor,aux;
for(i=0;i<n-1;i++)
{
indicemenor=i;
for(j=i+1;j<n;j++)
if(a[j]<a[indicemenor])
indicemenor=j;
if(i !=indicemenor)
{
aux=a;
a=a[indicemenor];
a[indicemenor]=aux;
}
}
}
Aca te dejo un menu muy rudimentario ;D, pero te va a servir para darte una idea :P
Acordate de cuando hagas un post con codigo fuente utilizar las etiquetas GeSHI [code=c][/code] o la de codigo sola [code][/code]
La libreria conio.h no hacia falta incluirla ya que no haces uso. Ademas tampoco es recomendable su uso ya que no es estandar.
#include <stdio.h>
void mostrar( int a[], int n );
int* copia( int a[], int cp[], int n );
int* burbuja( int a[], int n );
int* insercion( int a[], int n );
int* seleccion( int a[], int n );
int
main( void )
{
int opcion, n = 8;
int a[] = { 15, 56, 90, 0, 1, 6, 78, 65 };
int cp[n];
do
{
printf( "1. Burbuja\n"
"2. Insercion\n"
"3. Seleccion\n"
"4. Salir\n"
"> " );
fflush( stdout );
scanf( "%d", &opcion );
switch ( opcion )
{
case 1:
printf( "Original: " );
mostrar( a, n );
printf( "Ordenada: " );
mostrar( burbuja( copia( a, cp, n ), n ), n );
break;
case 2:
printf( "Original: " );
mostrar( a, n );
printf( "Ordenada: " );
mostrar( insercion( copia( a, cp, n ), n ), n );
break;
case 3:
printf( "Original: " );
mostrar( a, n );
printf( "Ordenada: " );
mostrar( seleccion( copia( a, cp, n ), n ), n );
break;
case 4:
printf( "Saliendo...\n" );
break;
default:
printf( "Opcion incorrecta\n" );
break;
}
}
while ( opcion != 4 );
return 0;
}
void
mostrar( int a[], int n )
{
int i;
for ( i = 0; i < n; ++i )
printf( "%d ", a[i] );
putchar( '\n' );
}
int*
copia( int a[], int cp[], int n )
{
int i;
for ( i = 0; i < n; ++i )
cp[i] = a[i];
return cp;
}
int*
burbuja( int a[], int n )
{
int i, j, aux;
for ( i = 1; i < n; i++ )
for ( j = 0; j < n - 1; j++ )
if ( a[j] > a[j + 1] )
{
aux = a[j];
a[j] = a[j + 1];
a[j + 1] = aux;
}
return a;
}
int*
insercion( int a[], int n )
{
int i, j, aux;
for ( i = 1; i < n; i++ )
{
j = i;
aux = a[i];
while ( j > 0 && aux < a[j-1] )
{
a[j] = a[j-1];
j--;
}
a[j] = aux;
}
return a;
}
int*
seleccion( int a[], int n )
{
int i, j, indicemenor, aux;
for ( i = 0; i < n - 1; i++ )
{
indicemenor = i;
for ( j = i + 1; j < n; j++ )
if ( a[j] < a[indicemenor] )
indicemenor = j;
if ( i != indicemenor )
{
aux = a[i];
a[i] = a[indicemenor];
a[indicemenor] = aux;
}
}
return a;
}
Salu10.