estrutura de dados
criar um progrma utilizando a linguagem de programaçao c/c++ que seja capaz de armazenar em uma matriz 3x20 o peso(linha 0), a altura (linha 1) e idade (linha 2) de 20 pessoas. apos armazenado o programa deve oferecer ao usuario a possibilidade de ordenar a matriz pela idade pela altura e pelo peso uma vez que a forma de ordenaçao seja selecionada, o programa deve exibir a matriz ordenada.
Quem quiser me adicionar tem o arquivo disponível na mina lista de materiais, tambem está na disciplina estrutura de dados.
Usei o método gnome sot para ordenar a lista, bata passar o campo chave para que ele ordene a matriz.
Não fiz o menu que ai já é desaforo...kkk Espero que ajude.
/*
* File: main.cpp
* Author: joao
*
* Created on 20 de junho de 2017, 15:35
* criar um progrma utilizando a linguagem de programaçao c/c++ que seja capaz de armazenar
* em uma matriz 3x20 o peso(linha 0), a altura (linha 1) e idade (linha 2)
* de 20 pessoas. apos armazenado o programa deve oferecer ao usuario a
* possibilidade de ordenar a matriz pela idade pela altura e pelo peso
* uma vez que a forma de ordenaçao seja selecionada, o programa deve exibir a matriz ordenada.
*/
#include <stdlib.h>
#include <stdio.h>
#include<math.h>
using namespace std;
void preencheMatriz(int mat[20][3], int m, int n) {
int randon;
for (int i = 0; i < m; i++) {
for (int k = 0; k < n; k++) {
switch (k) {
case 0:
randon = (rand() % ((150 - 1) + 1)) + 1;
break;
case 1:
randon = (rand() % ((200 - 1) + 1)) + 1;
break;
case 2:
randon = (rand() % ((99 - 1) + 1)) + 1;
break;
}
mat[i][k] = randon;
}
}
}
void exibeMatriz(int mat[20][3], int m, int n) {
printf("\nPeso - Altura - Idade\n");
for (int i = 0; i < m; i++) {
printf("\n");
for (int j = 0; j < n; j++) {
printf("[%d] ", mat[i][j]);
}
}
}
void gnomeSort(int vet[20][3], int m, int n, int posChave) {
int i = 1, j = 2, aux;
while (i < m) {
if (vet[i - 1][posChave] <= vet[i][posChave]) {
i = j;
j++;
} else {//copia do vetor na posição i(linha) em l (colunas)
for (int l = 0; l < n; l++) {
aux = vet[i][l];
vet[i][l] = vet[i - 1][l];
vet[i - 1][l] = aux;
}
i--;
if (i == 0) {
i = j;
j++;
}
}
}
}
int main(int argc, char** argv) {
int cont = 0;
int matriz[20][3];
preencheMatriz(matriz, 20, 3);
exibeMatriz(matriz, 20, 3);
for (int i = 0; i < 3; i++) {
gnomeSort(matriz, 20, 3, i);
exibeMatriz(matriz, 20, 3);
}
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar