A função qsort(); é mesmo fantástica, nós já nos sentimos muito satisfeito em
saber usá-la em nossos programas para ordenação em qualquer tipo aceito do C,
imagine os responsáveis pela criação desta incrível função o quanto não se
alegraram ao vê-la funcionando assim plenamente.
No primeiro post sobre qsort(); cujo o nome foi:
Qsort - ordenando um vetor de struct
Escrevi um pouco sobre esta importante função do C.
Neste exemplo eu mostro como ordenar uma matriz de inteiros previamente declarada,
aliás, eu recomendo que o futuro programador em linguagem C, guarde este exemplo
porque não é nada fácil encontrar outro como este.
A única surpresa, más que não foge da lógica é o método escolhido para fazer as
comparações, que é usando a função strcmp (); da biblioteca string.h dentro da
função int Qsort_Ord (); onde pares de elementos são comparados e retornados
para a função principal.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
saber usá-la em nossos programas para ordenação em qualquer tipo aceito do C,
imagine os responsáveis pela criação desta incrível função o quanto não se
alegraram ao vê-la funcionando assim plenamente.
No primeiro post sobre qsort(); cujo o nome foi:
Qsort - ordenando um vetor de struct
Escrevi um pouco sobre esta importante função do C.
Neste exemplo eu mostro como ordenar uma matriz de inteiros previamente declarada,
aliás, eu recomendo que o futuro programador em linguagem C, guarde este exemplo
porque não é nada fácil encontrar outro como este.
A única surpresa, más que não foge da lógica é o método escolhido para fazer as
comparações, que é usando a função strcmp (); da biblioteca string.h dentro da
função int Qsort_Ord (); onde pares de elementos são comparados e retornados
para a função principal.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void Moldura ( int a, int c, int b, int d, int e, int f ) {
textbackground ( WHITE );
for ( a = e; a <= c; a++ )
for ( b = f; b <= d; b++ ) {
gotoxy ( b, a );
textbackground ( WHITE );
printf ( " " );
}
}
int Qsort_Ord ( const void *a, const void *b ) {
return ( strcmp ( ( char * ) a, ( char * ) b ) );
}
int main ( void ) {
int Inteiros [ 10 ] [ 3 ] =
{{4, 14, 24 },
{ 9, 19, 29 },
{ 6, 16, 26 },
{ 2, 12, 22 },
{ 5, 15, 25 },
{ 3, 13, 23 },
{ 8, 18, 28 },
{ 1, 11, 21 },
{ 7, 17, 27 },
{ 0, 10, 20 }
};
int i, j;
system ( "title QSORT - ORDENANDO UMA MATRIZ DE INTEIROS" );
Moldura ( 2, 24, 2, 78, 2, 3 );
textcolor ( LIGHTRED );
gotoxy ( 23, 3 );
printf ( "QSORT -
ORDENANDO UMA MATRIZ DE INTEIROS" );
textcolor ( LIGHTBLUE );
gotoxy ( 15, 5 );
printf ( "Antes da
ordenação" );
for ( i = 0; i < 10; i++ ) {
gotoxy ( 21, i + 7 );
textcolor ( BLACK );
for ( j = 0; j < 3; j++ )
printf ( "%d ", Inteiros [ i ] [ j ] );
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 48, 5 );
printf ( "Depois da
ordenação" );
qsort ( ( void * ) Inteiros, 10, sizeof ( Inteiros [ 0 ] ), Qsort_Ord );
for ( i = 0; i < 10; i++ ) {
gotoxy ( 54, i + 7 );
textcolor ( BLACK );
for ( j = 0; j < 3; j++ ) {
printf ( "%d ", Inteiros [ i ] [ j ] );
}
}
Sleep ( 1800 );
textbackground ( WHITE );
textcolor ( LIGHTBLUE );
gotoxy ( 21, 19 );
printf ( "Por: " );
textcolor ( LIGHTMAGENTA );
printf ( "Samuel Lima" );
textcolor ( BLACK );
gotoxy ( 21, 20 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 36, 23 );
printf ( "MUITO
OBRIGADO" );
getche ( );
return 0;
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.