Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 26 Agosto 2016, 03:43 AM

Título: Problema de Burbujeo en una Matriz!
Publicado por: palacio29 en 26 Agosto 2016, 03:43 AM
Hola

Tengo el siguiente problema. Necesito cargar nombres en una matriz y ordenar esa lista basandome en la primera letra. El nombre que tenga la primera letra mas cercana a la "A" iria primero y el mas cercano a la "Z" ultimo.

El codigo que hice hasta ahora es el siguiente.

#include <stdio.h>
#include <stdlib.h>
void IMPRIMIR(char arreglo[5][20]);
void ORDENAR(char arreglo[5][20]);
int main()
{
    char arreglo1[5][20];                ///ARREGLO DONDE GUARDO NOMBRES

    char letra='4';
    int bandera=0;
    int fila=0,columnachar=0;


    while ((arreglo1[fila][0]!='\0' || bandera==0)&& fila<5)
    {
        printf ("\nIngrese el nombre :  ");

        while (letra!='\r')
        {
            letra=getche();
            if (letra!='\r')
            {
                arreglo1[fila][columnachar]=letra;
                columnachar++;
            }
            if (letra=='\r')
            {
                if (columnachar==0)
                {
                    bandera=1;
                }
                if (bandera==0)
                {

                arreglo1[fila][columnachar]='\0';
                fila++;
                columnachar=0;
                }

            }

        }
        letra='4';


    }
    IMPRIMIR(arreglo1);


    return 0;
}


void IMPRIMIR(char arreglo1[5][20])
{
int fila=0,columna=0;

printf ("\n");
    while (fila<5)
    {
        printf ("%s\n",arreglo1[fila]);
        fila++;
    }
}





Este codigo solo incluye la carga en la matriz...pero nose como ordenarlo.
Me dicen que tengo que ordenarlo basandome en este codigo

void ordenar(int a[], int longitud)
{
int i, j, aux;
for (i = 0; i < longitud; i++)
{
for (j = i + 1; j < longitud; j++)
{
if (a[j] < a[i])
{
aux = a[i]; a[i] =
a[j]; a[j] = aux;
}
}
}
}


El problema es que intento hacerlo pero no me sale...La tanda de ejercicios incluye que lo ordenemos basandonos en la primera letra, y luego en todas las letras;..

Teoricamente tendria que comparar a cada posicion con la de la otra fila y si es mayor, crear un auxiliar, guardarlo y luego cambiarlos de lugar y asi para cada uno, lo he intentado pero no hay caso.
Título: Re: Problema de Burbujeo en una Matriz!
Publicado por: AlbertoBSD en 26 Agosto 2016, 14:55 PM
El codigo que muestras es para ordenar enteros haybque modificarlo para comprar Cadenas podrias ordenarlos usando strcmp.

Te recomiendo que leas primero de algoritmos de ordenamiento.

Burbuja
QuickSort
etc

Y veas primero como ordenarlos en Papel para luego escribie el codigo correcto