Faça um programa que leia duas matrizes 2 times 2 com valores reais. Ofereça ao usuário um menu de opções:
(d) imprimir as matrizes

Passo 1

O exercício pede um programa em C que leia duas matrizes 2×2 de valores reais e apresente ao usuário um menu com a opção “d” para imprimir essas matrizes. Vamos usar arrays bidimensionais, loops para leitura e impressão, e um switch-case para tratar a opção do menu.

Passo 2

Declarar duas matrizes do tipo double com tamanho 2×2 e variáveis auxiliares. Em seguida, usar dois loops for aninhados (um para linhas e outro para colunas) para ler cada elemento de cada matriz com scanf.

Passo 3

Criar um loop do-while para exibir o menu repetidamente até o usuário escolher sair. Dentro do loop, imprimir as opções disponíveis (“d” para imprimir e “s” para sair) e ler a escolha do usuário em uma variável char.

Passo 4

No switch-case, tratar a opção ‘d’ (ou ‘D’): percorrer cada matriz com dois loops for e imprimir os elementos em formato tabulado. Em seguida, tratar ‘s’ (ou ‘S’) para encerrar o programa, e um default para avisar opção inválida.

Passo 5

O loop continua até que o usuário digite ‘s’ ou ‘S’, quando então o programa imprime mensagem de encerramento e retorna 0, finalizando a execução.

Resposta

#include <stdio.h>
int main() {
double m1[2][2], m2[2][2];
char opcao;
int i, j;
// Leitura da primeira matriz
for (i = 0; i < 2; i++) {
    for (j = 0; j < 2; j++) {
        printf("Digite m1[%d][%d]: ", i, j);
        scanf("%lf", &m1[i][j]);
    }
}

// Leitura da segunda matriz
for (i = 0; i < 2; i++) {
    for (j = 0; j < 2; j++) {
        printf("Digite m2[%d][%d]: ", i, j);
        scanf("%lf", &m2[i][j]);
    }
}

// Loop do menu
do {
    printf("\nMenu:\n");
    printf("d - Imprimir as matrizes\n");
    printf("s - Sair\n");
    printf("Escolha uma opcao: ");
    scanf(" %c", &opcao);

    switch (opcao) {
        case 'd':
        case 'D':
            printf("\nMatriz 1:\n");
            for (i = 0; i < 2; i++) {
                for (j = 0; j < 2; j++) {
                    printf("%8.2f", m1[i][j]);
                }
                printf("\n");
            }

            printf("\nMatriz 2:\n");
            for (i = 0; i < 2; i++) {
                for (j = 0; j < 2; j++) {
                    printf("%8.2f", m2[i][j]);
                }
                printf("\n");
            }
            break;

        case 's':
        case 'S':
            printf("Encerrando o programa...\n");
            break;

        default:
            printf("Opcao invalida! Tente novamente.\n");
    }

} while (opcao != 's' && opcao != 'S');

return 0;
}

Exercícios relacionados