RESPONDER UNA PREGUNTA

Si para responder la pregunta, crees necesario enviar un archivo adjunto, puedes hacerlo a traves del correo [email protected]

    Pregunta:  67648 - AYUDA CONORDENAMIENTOS MENUS Y FUNCIONES
Autor:  Laura Vazval
Hola espero y me ayuden a corregir mi programa,
No se por que me marca error con algunas variables,
Tambien lo necesito pasar a menus pero no se como...
Ayuda , si me podrian decir en que estoy mal.....

#include <conio.h>
#include <stdio.h>
#define N 100

void entradaLista (int a[], int n);
void ordIntercambio (int a[], int n);
void ordSeleccion (int a[], int n);
void ordInsercion (int a[], int n);
void ordBurbuja (int a[], int n);
void ordenacionShell(int a[], int n);

int busquedaBin(int lista[], int n, int clave);
int Secuencial ( int x, int lista[], int n );
void imprimirLista (int a[], int n);

main()
{
int a[N], n = 0;
printf(" Cuantos elementos deseas leer: ");
scanf("%d", & n);

entradaLista (a, n);
printf(" Los elementos desordenados del vector son: ");
imprimirLista (a, n);
//ordIntercambio (a, n);
//ordSeleccion (a, n);
//ordInsercion (a, n);
ordBurbuja (a, n);
ordenacionShell(a, n);

busquedaBin(lista, n, clave);
Secuencial (x, lista, n );
printf(" Los elementos con ordenamiento por INTERCAMBIO son: ");
imprimirLista (a, n);
getch();
}

void entradaLista (int a[], int n)
{
int i;
for (i = 0; i < n; i++)
{
printf(" Dame un elemento para el vector: ");
scanf("%d", & a[i]);
}
return;
}

void ordIntercambio (int a[], int n)
{
int i = 0, j = 0, aux = 0;
/* se realizan n-1 pasadas */
/* a[o], ... , a[n-2] */
for (i = 0 ; i <= n-2 ; i++)
/* coloca mínimo de a[i+1]...a[n-1] en a[i] */
for (j = i+1 ; j <= n-1 ; j++)
if (a[i] > a[j])
{
aux;
aux = a[i];
a[i] = a[j];
a[j]= aux ;
}
}

void ordSeleccion (int a[], int n)
{
int indiceMenor = 0, i = 0, j = 0, aux = 0;
/* ordenar a[0]..a[n-2] y a[n-1] en cada pasada */
for (i = 0; i < (n-1); i++)
{
/* comienzo de la exploración en índice i */
indiceMenor = i;
/* j explora la sublista a[i+1]..a[n-1] */
for (j = i+1; j < n; j++)
if (a[j] < a[indiceMenor])
indiceMenor = j;
/* sitúa el elemento más pequeño en a[i] */
if (i != indiceMenor)
{
aux = a[i];
a[i] = a[indiceMenor];
a[indiceMenor] = aux ;
}
}
}

void ordInsercion (int a[], int n)
{
int i, j;
int aux;
for (i = 1; i < n; i++)
{
/* índice j explora la sublista a[i-1]..a[0] buscando la posición correcta del elemento destino, lo asigna a a[j] */
j = i;
aux = a[i];
/* se localiza el punto de inserción explorando hacia abajo */
while (j > 0 && aux < a[j-1])
{
/* desplazar elementos hacia arriba para hacer espacio */
a[j] = a[j-1];
j--;
}
a[j] = aux;
}
}

void ordBurbuja (int a[], int n)
{
int interruptor = 1, pasada = 0, j = 0, aux = 0;

for (pasada = 0; pasada < n-1 && interruptor; pasada++)
{
/* bucle externo controla la cantidad de pasadas */
interruptor = 0;
for (j = 0; j < n-pasada-1; j++)
if (a[j] > a[j+1])
{
/* elementos desordenados, es necesario intercambio */
interruptor = 1;
aux = a[j];
a[j] = a[j+1];
a[j+1] = aux;
}
}
}

void ordenacionShell(int a[], int n)
{
int intervalo = 0, i = 0, j = 0, k = 0, aux = 0;
intervalo = n / 2;
while (intervalo > 0)
{
for (i = intervalo; i < n; i++)
{
j = i - intervalo;
while (j >= 0)
{
k = j + intervalo;
if (a[j] <= a[k])
j = -1; /* así termina el bucle, par ordenado */
else
{
aux = a[j];
a[j] = a[k];
a[k] = aux;
j -= intervalo;
}
}
}
intervalo = intervalo / 2;
}
}



/*
búsqueda binaria.
devuelve el índice del elemento buscado, o bien -1 caso de fallo
*/
int busquedaBin(int lista[], int n, int clave)
{
int central, bajo, alto;
int valorCentral;
bajo = 0;
alto = n-1;
while (bajo <= alto)
{
central = (bajo + alto)/2; /* índice de elemento central */
valorCentral = lista[central]; /* valor del índice central */
if (clave == valorCentral)
return central; /* encontrado, devuelve posición */
else
if (clave < valorCentral)
alto = central -1; /* ir a sublista inferior */
else
bajo = central + 1; /* ir a sublista superior */
}
return -1; /* elemento no encontrado */
}

int Secuencial ( int x, int lista[], int n )
{
int j=0;
for( j=0; j < n; j++ )
if( x = = vect[j] )
return j;
return (-1);
}

void imprimirLista (int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
return;
}


Nombre
Apellidos
Correo
Comentarios