Pesquisar neste blog

07/08/2017

Ordenação de Matriz em Linguagem C

#include <stdio.h>
#include <stdlib.h>
#define DIM 3 // TAMANHO DE CADA LINHA : para alterar o tamanho
//da matriz é só redefinir

/*Autor: Henrique
Data de Criação: 05/08/2017
Objetivo: Criar uma matriz Ordenada por Linha*/

//Função para ordenar de forma crescente
void OrdenacaoCrescente(int Mat[DIM]){
int i, j, aux;
for (i = 0; i < DIM-1; i++){
for (j = 0; j < DIM-1; j++){

if (Mat[j] > Mat[j+1]){
aux = Mat[j];
Mat[j] = Mat[j+1];
Mat[j+1] = aux;
}
}
}
for (i = 0; i <DIM; i++){//imprimindo a linha de forma ordenada
printf("%3d ", Mat[i]);
}
}

void OrdenaDecrescente(int Mat[DIM]){
int i, j, aux;
for (i = 0; i < DIM-1; i++){
for (j = 0; j < DIM-1; j++){

if (Mat[j] < Mat[j+1]){
aux = Mat[j];
Mat[j] = Mat[j+1];
Mat[j+1] = aux;
}
}
}
for (i = 0; i < DIM; i++){//Imprimindo a linha de forma decrescente
printf("%3d ", Mat[i]);
}
}


int main(){
int i, Matriz[DIM], Matriz2[DIM], Matriz3[DIM];

printf("DIGITE OS RESPECTIVOS VALORES INTEIROS PARA A MATRIZ \n\n");
for (i = 0; i < DIM; ++i){//Recebendo os valores para a Matriz da 1° linha
printf("Matriz de Posicao [1][%d]: ", (i+1));
scanf("%d", &Matriz[i]);
}
for(i = 0; i < DIM; ++i){//Recebendo os valorees para a Matriz da 2° linha
printf("\tMatriz de Posicao [2][%d]: ",(i+1));
scanf("%d", &Matriz2[i]);
}
for(i = 0; i < DIM; i++){//Receendo os valores para a Matriz da 3° linha
printf("\t\tMatriz de Posicao [3][%d]: ",(i+1));
scanf("%d", &Matriz3[i]);
}

system("cls");//Limpando a tela dos dados inseridos
printf("\n* * * * MATRIZ GERADA * * * *\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 1
printf("%3d ",Matriz[i]);
}
printf("\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 2
printf("%3d ", Matriz2[i]);
}
printf("\n");
for(i = 0; i < DIM; i++){// Imprimindo a matriz de linha 3
printf("%3d ", Matriz3[i]);
}


//Chamando a função crescente para cada etapa da linha
printf("\n\n---- MATRIZ DE ORDENACAO CRESCENTE ------\n");
OrdenacaoCrescente(Matriz);
printf("\n");
OrdenacaoCrescente(Matriz2);
printf("\n");
OrdenacaoCrescente(Matriz3);

//Chamando a função decrescente para cada etapa da linha
printf("\n\n---- MATRIZ DE ORDENACAO DECRESCENTE-----\n");;
OrdenaDecrescente(Matriz);
printf("\n");
OrdenaDecrescente(Matriz2);
printf("\n");
OrdenaDecrescente(Matriz3);

printf("\n\n");
return EXIT_SUCCESS;
}

Nenhum comentário: