Faça um programa que leia duas matrizes
com valores reais. Ofereça ao usuário um menu de opções:
(d) imprimir as matrizes
(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;
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;
}