Talvez você já precisou imprimir em ordem uma Matriz Bidimensional do tipo float e
encontrou muitas dificuldades, más usando este método que aprendi
a utilizar torna se muito fácil a ordenação. Primeiro a Matriz Bidimensional é transformada em um vetor simples,
veja que ele foi declarado previamente com 24 posições. Dois laços for, sendo um para linhas e outro para colunas,
fazem a varredura em loop, e então atribuimos a mat_triz [] [], ao vetor vet[]; e incrementamos a variável h,
onde junto com o vetor receberão os valores transformados. Agora printf imprime o nosso vetor postiço do tipo float
que recebeu a matriz: mat_triz [] [];
A ordenação mesmo é pelo método QuickSort que atualmente é um dos métodos mais rápidos e eficientes dito pelos programadores
e este foi o usado para ordenação dos elementos do vetor. Essa funcao qsort();faz parte da biblioteca stdlib.h. e
Temos também a função compare do tipo int que permite comparar os valores no período de ordenação.
Veja acima a saída deste programa no cmd.
Copie, cole e compile:
#include <stdio.h>
#include<conio2.h>
#include <stdlib.h>
float vet [24];
float mat_riz [8] [3] = {{10.2, 14.8, 11.4},
{9.5, 15.3, 8.9},
{8.6, 14.3, 21.6},
{9.7, 16.5, 19.2},
{6.1, 17.4, 27.5},
{7.7, 16.1, 3.4},
{8.3, 17.1, 7.8},
{7.3, 15.9, 33.8}};
int comparare(const void *a, const void *b){
return(*(int*)a - *(int*)b);
}
int main(){
system ("title CONVERTENDO UMA MATRIZ BIDIMENSIONAL EM VETOR UNIDIMENSIONAL");
int i, tam = 24;
float vet [24];
int g = 0, h = 0, f;
for(f = 0; f < 8; f++){
for(g = 0; g < 3; g++){
vet[h] = mat_riz[f][g];
h++;
}
}
textcolor(LIGHTRED);gotoxy(12,3);printf("CONVERTENDO UMA MATRIZ BIDIMENSIONAL EM VETOR UNIDIMENSIONAL");
textcolor(LIGHTBLUE);gotoxy(25,5);printf("MATRIZ CONVERTIDA EM VETOR SIMPLES");
textcolor(YELLOW);printf("\n\n");
printf("\n");
for(int h = 0; h < 24; h++){
printf("\t\t\t\tposicao: %i %.1f\n", h, vet [h]); Sleep(800);// Agora temos um vetor do tipo float
}
Sleep(800);
qsort(vet, tam, sizeof(int), comparare);
system("cls");
textcolor(LIGHTRED);gotoxy(12,3);printf("CONVERTENDO UMA MATRIZ BIDIMENSIONAL EM VETOR UNIDIMENSIONAL");
textcolor(LIGHTGREEN);gotoxy(30,5);printf("ESTA E A MATRIZ ORIGINAL");textcolor(LIGHTBLUE);
printf("\n");
for(i = 0; i < 8; i++){ // Faz a leitura das linhas
printf("\n");printf("\n");gotoxy(33,i + 7);
for(h = 0; h < 3; h++){ // Faz a leitura das colunas
printf(" %.1f ", mat_riz [i] [h]); // Imprime linhas e colunas
}
}
textcolor(LIGHTGREEN);gotoxy(25,17);printf("IMPRIMINDO AGORA A MATRIZ ORDENADA");
printf("\n");textcolor(YELLOW);
for(i = 0; i < 18; i++){
gotoxy(5,i + 19);
for(i = 0; i < 24; i++)
printf(" %.1f ", vet [i]);
}
textcolor(LIGHTRED);gotoxy(35,23);printf("\aO ROCCO AGRADECE");
getche();
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.