//Galera esse programa coloca em ordem crescente os números de um vetor analisando-os de dois em dois.
//Lembrando que eu fiz no Linux, então alguns comando estão faltando mas é só vocês completarem com "getch()" no final e "return(0)"
#include <stdio.h>
#include <stdlib.h>
#define MAX 5 //Define o símbolo MAX como 5
int main()
{
int vet[MAX],x, k, aux;
system( "clear" ); //limpa a tela, no win é cls.
//Para carregar o vetor.
for (x=0; x<MAX; x++)
{
printf("vet[%d] = ",x);
scanf("%d",&vet[x]);
//grava o numero na posição "x"
}
//Aqui começa o modo bolha
do{k=0; //Atribui falso a K.
for (x=0; x<MAX ;x++)
{
if ( vet[x] > vet[x+1] ) //avalia se o numero da frente é menor.
{
aux = vet[x]; //grava o numero da posição "x" em aux
vet[x] = vet[x+1]; //a posição "x" recebe o numero da frente.
vet[x+1]=aux;
//O que estava em aux vai para a posição da frente
k=1; //coloca verdadeiro em k.
}
}
}while(k!= 0); //enquanto houver trocas ele não sai do loop
//Mostrar o vetor na tela já em ordem crescente.
printf("vet = ");
for(x=0 ; x<MAX; x++)
{
printf(" %d ",vet[x]);
}
printf( "\n" );
}
Lembrando que esse método de ordenação é o mais lento, mas é o mais simples de entender a lógica.
É isso ai galera, qualquer duvida poste nos comentário \o/
by Wellington