No post anterior os leitores observaram o quanto é fácil usar a função qsort();
para ordenar um vetor de estrutura, ode nele escrevi um pouco sobre esta importante
função do C.
Neste exemplo mostro como ordenar uma matriz de string, o que é ainda mais fácil
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 Comp_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:
para ordenar um vetor de estrutura, ode nele escrevi um pouco sobre esta importante
função do C.
Neste exemplo mostro como ordenar uma matriz de string, o que é ainda mais fácil
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 Comp_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 Comp_ord ( const void *a , const void *b ) {
return ( strcmp ( ( char * ) a , ( char * ) b ) );
}
int main ( void ) {
char Nomes [ 10 ] [ 16 ] =
{{"Jaqueline Vega "},
{"Eder
Costa "},
{"Humberto
Gomes "},
{"Dijalma
Lacerda"},
{"Caroline
Silva "},
{"Igor
Goncalves "},
{"Bruna
Carla "},
{"Fabio
Quadros "},
{"Ana
Celia "},
{"Geany
Barros "}};
int i;
system ( "title QSORT -
ORDENANDO UMA MATRIZ DE STRING" );
Moldura ( 2 , 24 , 2 , 78 , 2 , 3 );
textcolor ( LIGHTRED );
gotoxy ( 23 , 3 );
printf ( "QSORT -
ORDENANDO UMA MATRIZ DE STRING" );
textcolor ( LIGHTBLUE );
gotoxy ( 15 , 5 );
printf ( "Antes da
ordenação" );
for ( i = 0; i < 10 ; i++ ) {
textcolor ( BLACK );
gotoxy ( 17 , i + 7 );
printf ( "%s" , Nomes [ i ] );
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 48 , 5 );
printf ( "Depois da
ordenação" );
qsort ( ( void * ) Nomes , 10 , sizeof ( Nomes [ 0 ] ) , Comp_ord );
for ( i = 0; i < 10 ; i++ ) {
textcolor ( BLACK );
gotoxy ( 50 , i + 7 );
printf ( "%s" , Nomes [ i ] );
}
Sleep ( 1800 );
textbackground ( WHITE );
textcolor ( LIGHTBLUE );
gotoxy ( 17 , 19 );
printf ( "Por: " );
textcolor ( LIGHTMAGENTA );
printf ( "Samuel Lima" );
textcolor ( BLACK );
gotoxy ( 17 , 20 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 36 , 23 );
printf ( "MUITO
OBRIGADO" );
getche ( );
exit ( 0 );
return 0;
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.