Ir ao conteúdo
  • Cadastre-se

C Problema com impressão de matrizes


12Pedro34

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

#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
Link para o comentário
Compartilhar em outros sites

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...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!