Ir ao conteúdo

Posts recomendados

Postado

Estou tentando resolver a seguinte questão...

Citação

Escreva um programa que permita a leitura de 8 números reais. Os números devem ser armazenados como segue: 4 números em matriz A de 2 linhas e 2 colunas; 4 números em uma matriz B  de 2 linhas e 2 colunas. Os números devem informados pelo usuário. O programa deve fornecer um menu com as opções para: (a) somar os elementos das matrizes e apresentar os resultados; (b) subtrair os elementos das matrizes e apresentar os resultados; (c) adicionar um valor qualquer, fornecido pelo usuário, aos elementos contidos na matriz A; (d) imprimir as matrizes.

Isso é o que tenho por enquanto:

#include <stdio.h>
int main() {
    int l=2, c=2, a[2][2], b[2][2], r[2][2], i, j, escolha, num, pos;

    printf("\nDigite os elementos da matriz A:\n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("Digite o elemento a[%d][%d]: ", i + 1, j + 1);
            scanf("%d", &a[i][j]);
        }

    printf("Digite os elementos da matriz B:\n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("Digite o elemento b[%d][%d]: ", i + 1, j + 1);
            scanf("%d", &b[i][j]);
        }

do {
 printf("\n\nMENU\n\n");
 printf("1. Some\n");
 printf("2. Subtraia\n");
 printf("3. Insira um novo número na matriz A\n");
 printf("4. Imprima\n");
 printf("5. Saída\n");
 scanf("%d",&escolha);
  
 switch (escolha)
 {
    if (escolha == 1) { case 1: {
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            r[i][j] = a[i][j] + b[i][j];
        }
    printf("\nSoma das duas matrizes: \n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("%d   ", r[i][j]);
            if (j == c - 1) {
                printf("\n\n");
                break;
            }
        }
     }
    }
    if (escolha == 2){ case 2: {for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            r[i][j] = a[i][j] - b[i][j];
            printf("\nSubtração das duas matrizes: \n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("%d   ", r[i][j]);
            if (j == c - 1) {
                printf("\n\n");
                break;
            }
        }
        }
        };
 }
 if (escolha == 3) {case 3:  printf("Insira o elemento que quer acrescentar: ");
    scanf("%d", &num);
    printf("Insira a posição (apenas um número): ");
    scanf("%d", &pos);

        a[pos-1][j] = num; 

        printf("Matriz A após a alteração: ");
         for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j)
        {
        printf("%d  ", a[i][j]);
        if (j == c - 1) {
                printf("\n\n");}
    }
 break;}
 if (escolha == 4){case 4:
 printf("\nEssa é a matriz A:\n");
 printf("%d", &a[i][j]);
 if (j == c - 1) {
 printf("\n\n");}
 printf("\nEssa é a matriz B:\n");
 printf("%d", &b[i][j]);
 if (j == c - 1) {
 printf("\n\n");}
 break;}
 }
}while (escolha != 5);

    return 0;
}

Os itens a) e b) do exercício funcionam, mas não consigo imprimir os itens c) e d) corretamente.

Alguma sugestão?

  • Curtir 1
Postado
#include <stdio.h>
int main() {
    int l=2, c=2, a[2][2], b[2][2], r[2][2], i, j, escolha, num, pos;

    printf("\nDigite os elementos da matriz A:\n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("Digite o elemento a[%d][%d]: ", i + 1, j + 1);
            scanf("%d", &a[i][j]);
        }

    printf("Digite os elementos da matriz B:\n");
    for (i = 0; i < l; ++i)
        for (j = 0; j < c; ++j) {
            printf("Digite o elemento b[%d][%d]: ", i + 1, j + 1);
            scanf("%d", &b[i][j]);
        }

do {
 printf("\n\nMENU\n\n");
 printf("1. Some\n");
 printf("2. Subtraia\n");
 printf("3. Insira um novo número na matriz A\n");
 printf("4. Imprima\n");
 printf("5. Saída\n");
 scanf("%d",&escolha);
  
 switch (escolha)
 {
    case 1: 
    printf("\nSoma das duas matrizes: \n");
    for (i = 0; i < l; ++i) {
        for (j = 0; j < c; ++j) {
            r[i][j] = a[i][j] + b[i][j];
            printf("%d   ", r[i][j]);
        }
        printf("\n\n");
    }
    break;
    case 2: 
        printf("\nSubtração das duas matrizes: \n");
        for (i = 0; i < l; ++i) {
            for (j = 0; j < c; ++j) {
                r[i][j] = a[i][j] - b[i][j];
                printf("%d   ", r[i][j]);
            }
            printf("\n\n");
        }
    break;
    case 3:  
        printf("Insira o elemento que quer acrescentar: ");
        scanf("%d", &num);
        printf("Insira a posição (apenas um número): ");
        scanf("%d", &pos);
        a[pos-1][j] = num; 
        printf("Matriz A após a alteração: \n");
         for (i = 0; i < l; ++i) {        
             for (j = 0; j < c; ++j)
            {
                printf("%d  ", a[i][j]);
            }
            printf("\n\n");
         }
        break;
    case 4:
    printf("\nEssa é a matriz A:\n");
    for (i = 0; i < l; ++i) {        
             for (j = 0; j < c; ++j)
            {
                printf("%d  ", a[i][j]);
            }
            printf("\n\n");
         }
    printf("\nEssa é a matriz B:\n");
    for (i = 0; i < l; ++i) {        
             for (j = 0; j < c; ++j)
            {
                printf("%d  ", b[i][j]);
            }
            printf("\n\n");
         }
 }
}while (escolha != 5);

    return 0;
}

 

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!