Para finalizar esta série de exemplos de ordenação com qsort(); apresento este
ótimo programa que mostra primeiramente um vetor de 100 elementos inteiros todo
desordenado e do lado direito depois que clicamos em qualquer tecla, a função
qsort (); faz a ordenação completa e perfeita de todos elementos.
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.
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:
ótimo programa que mostra primeiramente um vetor de 100 elementos inteiros todo
desordenado e do lado direito depois que clicamos em qualquer tecla, a função
qsort (); faz a ordenação completa e perfeita de todos elementos.
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.
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 <string.h>
#include <stdlib.h>
#include <conio.h>
/*
Tamanho do buffer da tela
Largura: 100
Altura: 25
Tamanho da janela
Largura: 100
Altura: 25
*/
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 ( ) {
int Inteiros [ 100 ] = {
36, 48, 34, 89, 25, 56, 1, 59, 12, 81 ,
15, 22, 65, 17, 91,
6, 11, 93, 26, 54 ,
85, 8, 35, 24, 39, 27, 76, 14, 21, 99 ,
66, 95, 87, 69, 100, 51, 20, 18, 71, 46 ,
33, 45, 57, 67, 80, 50, 4, 82, 83, 92 ,
31, 13, 94, 16, 47, 10, 61, 63, 74, 60 ,
5, 88, 37, 77, 23, 38, 86, 43, 72, 78 ,
70, 98, 73, 52, 42, 28, 68, 3, 41, 75 ,
58, 79, 84, 97, 64, 55, 9, 19,
7, 32 ,
44, 62, 90, 53, 40, 30, 96, 29, 2, 49 };
int i;
system ( "title QSORT -
ORDENANDO UM VETOR DE INTEIROS" );
Moldura ( 2, 24, 2, 98, 2, 3 );
textcolor ( LIGHTRED );
gotoxy ( 33, 3 );
printf ( "QSORT -
ORDENANDO UM VETOR DE INTEIROS" );
textcolor ( LIGHTBLUE );
gotoxy ( 20, 5 );
printf ( "Antes da
ordenação" );
textcolor ( BLACK );gotoxy(7,7);
for ( i = 0; i < 100; i++ ) {
if ( i == 10 ){ gotoxy(7,8);}
if ( i == 20 ) {gotoxy(7,9);}
if ( i == 30 ){gotoxy(7,10);}
if ( i == 40 ){gotoxy(7,11);}
if ( i == 50 ){gotoxy(7,12);}
if ( i == 60 ){gotoxy(7,13);}
if ( i == 70 ){gotoxy(7,14);}
if ( i == 80 ){gotoxy(7,15);}
if ( i == 90 ){gotoxy(7,16);}
printf ( "%4d", Inteiros [ i ] );
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 64, 5 );
printf ( "Depois da
ordenação" );
qsort ( ( void * ) Inteiros, 100, sizeof ( Inteiros [ 0 ] ), Qsort_Ord );
textcolor ( BLACK );gotoxy(52,7);
for ( i = 0; i < 100; i++ ) {
if ( i == 10 ){ gotoxy(52,8);}
if ( i == 20 ) {gotoxy(52,9);}
if ( i == 30 ){gotoxy(52,10);}
if ( i == 40 ){gotoxy(52,11);}
if ( i == 50 ){gotoxy(52,12);}
if ( i == 60 ){gotoxy(52,13);}
if ( i == 70 ){gotoxy(52,14);}
if ( i == 80 ){gotoxy(52,15);}
if ( i == 90 ){gotoxy(52,16);}
printf ( "%4d", Inteiros [ i ] );
}
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 ( 46, 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.