Ir para conteúdo
Fórum Script Brasil
  • 0

Erro com algoritmo em C para multiplicar 2 matrizes...


João Lucas Alves de Macedo

Pergunta

Olá, caros usuários, prazer! Faz pouco tempo que comecei a estudar programação em C, cheguei na parte de matrizes e me deparei com um problema num código para efetuar o produto das mesmas. Já comparei meu código com alguns outros que vi na internet, porém, não consegui achar o meu erro... Segue abaixo o meu código, caso alguém possa me ajudar, ficarei extremamente grato!

 

#include <stdio.h>
#include <stdlib.h>
#define TAM 2                                   //usei essa constante TAM para representar o tamanho das linhas e das colunas, que são iguais no meu algoritmo. 

main () {  
    
    int matA[TAM][TAM], matB[TAM][TAM], matR[TAM][TAM];     //declaração das matrizes A e B, que serão multiplicadas, e, da minha matriz R que vai receber o resultado.
    
    for (int n=1; n<3; n++) {                                         //esse for mais externo, é basicamente para efetuar a leitura das duas matrizes, A e B.
        for (int i=0; i<TAM; i++) {
            for (int j=0; j<TAM; j++){
                
                printf ("Digite o valor %ix%i da matriz %i: \n", i+1, j+1, n);
                if (n==1)                                                                                           //com essa condicional, a maquina saberá quando guardar os valores de A e quando começar a guardar os valores de B
                scanf ("%i", &matA[j]);
                else
                scanf ("%i", &matB[j]);
            }
            printf ("\n");
        }
        printf ("\n");
    }
    
    for (int n=0; n<2; n++) {                           /*esse conjunto de laços for aqui é para exibir os valores das matrizes A e B logo depois que o usuário inseri-los.
        for (int i=0; i<TAM; i++) {                             eu testei com somente essa parte, de pedir os valores das matrizes,
 
           for (int j=0; j<TAM; j++) {                         armazena-los e de logo em seguida exibi-los, e até aqui, está tudo ok. Os valores são capturados e exibidos corretamente...*/
 
               if (n==0)
                printf ("%i-", matA[j]);
                else
                printf ("%i-", matB[j]);
            }
        printf("\n");
        }
        printf("\n");
    }
    
    for (int i=0; i<TAM; i++) {                                                               //essa parte é a que faz a multiplicação das matrizes, creio que o meu erro esteja aqui [...]
        for (int j=0; j<TAM; j++) {
            for (int k=0; k<TAM; k++) {
                
                matR[j] = matR[j]+(matA[k]*matB[k][j]);
            
            }
        }
    }
    
    for (int i=0; i<TAM; i++) {                              //[...] ou aqui. Essa é para exibir a matriz com o resultado da multiplicação.
        for (int j=0; j<TAM; j++) {
            printf ("%i  ", matR[j]);
        }
        printf("\n");
    }
    
    system ("pause");
    return 0;
    
    }

    
    

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ao não usar o botao "code" para introduzir seu código ele perdeu algimas partes como

[i]

...já que isso é o comando para que as letras saiam em itálico(tombadas).

Por favor, volte a introduzir seu programa usando o botão code. É o o botão <> que está justo acima quando você estiver redatanto seu testo.Screenshot_2.png.0472f680afadf8a6d07d10f5efabb15e.png

Editado por vangodp
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...