Esta aqui o algoritmo base para o exercício proposto no post sobre BubbleSort.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>const int TAMANHO = 5;
const int TAMANHO_NOME = 50;void BubbleSort(char vetor[TAMANHO][TAMANHO_NOME])
{
for (int i = TAMANHO - 1; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (strcmp(vetor[j], vetor[j + 1]) == 1)
{
char aArray[TAMANHO];strcpy(aArray, vetor[j]);
printf("\n\n%i", *aArray);
getch();
strcpy(vetor[j], vetor[j + 1]);
strcpy(vetor[j + 1], aArray);
free(aArray);
}
}
}
}void Listar(char vetor[TAMANHO][TAMANHO_NOME])
{
for (int i = 0; i < TAMANHO; i++)
{
printf("%d - %s\n", i + 1, vetor[i]);
}
}void main()
{
char vetor[TAMANHO][TAMANHO_NOME];strcpy(vetor[0], "RUDSON");
strcpy(vetor[1], "GUSTAVO");
strcpy(vetor[2], "ERIK");
strcpy(vetor[3], "ALAN");
strcpy(vetor[4], "ZIDANE");Listar(vetor);
printf("__________________\n");
BubbleSort(vetor);
Listar(vetor);
getch();}
A base das strings é que na linguagem C elas são vetores de char, e vetores devem ser manipulados por funções, pois alguns operadores não se aplicam a eles.
Então a sacada aqui é utilizar as funções:
- stcmp (string compare): compara strings, retornando -1 para o primeiro parâmetro menor do que o segundo, 0 para strings iguais, 1 para o primeiro parâmetro maior do que o segundo.
- strcpy (string copy): copia o conteúdo do segundo parâmetro para o primeiro parâmetro.
Espero ser de ajuda para os outros algoritmos também.
E só para complementar e fixar:
- Implemente o mesmo algoritmo com strings, porém ordenando de forma decrescente.
1 comentários:
Postar um comentário