Предполагается отсортировать 30 имен в nombres
в алфавитном порядке, функция burbuja()
выполняется, но после ее завершения все имена по-прежнему не отсортированы
#include <string.h>
#include <stdio.h>
#define max 30
int mostrar(char nombres[max][80])
{
int i;
printf("\nLa pila ahora tiene los siguentes elementos\n");
for(i = 0; i < max; i++)
printf("%s\n",nombres[i]);
}
void burbuja(char nombres[max][80]) //part that does not work
{
int i, j;
char aux[80];
for (i = 0; i < max; i++)
{
for (j = i + 1; j < max - i - 1; j++)
{
if(nombres[j - 1] > nombres[j])
{
strcpy(aux, nombres[j - 1]);
strcpy(nombres[j - 1], nombres[j]);
strcpy(nombres[j], aux);
}
}
}
}
int main()
{
char nombres[30][80] = {
"Javier", "Paola", "Paco", "Pedro", "Jorge", "Luis", "Champ",
"Alma", "Alicia", "Stephanie", "Mark", "Daniel", "Hank", "Malcom",
"Jaime", "Luisa", "Lila", "Beatriz", "Teresa", "Maria", "Michel",
"Karina", "Karen", "Carmen", "Juan", "Daniela", "Ana", "Gavin",
"Rosa", "Francisco"
};
mostrar(nombres);
burbuja(nombres);
mostrar(nombres);
}
отображает правильно отсортированные имена, функция bubble работает, затем показывает все те же имена, которые еще не отсортированы
... Программа завершена с кодом выхода 0
Нажмите клавишу ВВОД для выхода из консоли