Buscar

Resposta questao atividade pratica estrutura de dados.

boa tarde

Alguem tem a resposta dessa questao ja corrigida pela uninter? Ate achei algumas na net mas estao faltando uma parte.

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. 

💡 11 Respostas

User badge image

Joao Andre MArtins Dias

Cara quiser me adicionar tem esse exercicio resolvido no meu material em C.

 

2
Dislike0
User badge image

Joao Andre MArtins Dias

Parceiro se é por falta de menu, usa esse ai...

 int op;
    do {
        printf("[ 1 ] - Preencher Matriz automaticamente");
        printf("[ 2 ] - Ordenar peso");
        printf("[ 3 ] - Ordenar altura");
        printf("[ 4 ] - Ordenar idade");
        printf("[ 5 ] - exibir");
        printf("[ 6 ] - sair");
        scanf("%d", &op);
        switch (op) {
            case 1:
                preencheMatriz(matriz, 20, 3);
                break;
            case 2:
                gnomeSort(matriz, 20, 3, 0);
                break;
            case 3:
                gnomeSort(matriz, 20, 3, 1);
                break;
            case 4:
                gnomeSort(matriz, 20, 3, 2);
                break;
            case 5:
                exibeMatriz(matriz, 20, 3);
                break;

        }
    } while (op != 6);

2
Dislike0
User badge image

Joao Andre MArtins Dias


/*
 * 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);
    }

}

1
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais