Ir ao conteúdo
  • Cadastre-se

[AJUDA]Multiplicação de matrizes


xKiller15

Posts recomendados

Então galera, to com uma prova pra fazer e o prof pediu para criarmos um programa em C para realizar a multipilicação de matrizes, segue o código que desenvolvi até o momento, não estou identificar a causa do problema no meu código, preciso de ajuda. Obrigado.

#include <stdio.h>#include <stdlib.h>#define MAX 100float** mult_matriz(int m, int n, int p, int q, int** matriza, int** matrizb, int** matrizc){	int x,z, v=0;	float aux;	for (x=0;x<m;x++){		for (z=0;z<q;z++){			for (v = 0; v < n; v++);            matrizc[x][z] = matrizc[x][z] + matriza[x][v] * matrizb[v][z];		}	}	printf("A matriz é: ", matrizc);}int main(){	int i,j;    int m, n,  p,  q;	float matrizA[MAX][MAX],matrizB[MAX][MAX],matrizC[MAX][MAX];	printf("\n Informe a quantidade de linhas da matriz A : ");    scanf("%d",&m);    printf("\n Informe a quantidade de colunas da matriz A : ");    scanf("%d",&n);    printf("\n Informe a quntidade de linhas da matriz B : ");    scanf("%d",&p);    printf("\n Informe a quantidade de colunas da matriz B : ");    scanf("%d",&q);    if(n==p)    		{        for(i=0; i<m; i++)        {            for(j=0; j<n; j++)            {                 printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167);                 scanf("%d", &matrizA[i][j]);            }            printf("\n");        }        for(i=0; i<p; i++)        {                    for(j=0; j<q; j++)            {                 printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167);                 scanf("%d", &matrizB[i][j]);            }            printf("\n");        }         		matrizC=-mult_matriz(m,n,p,q,matrizA,matrizB,matrizC);         printf("\n\n");			printf("A Matriz [a] gerada foi: \n");         for(i=0; i<m; i++)         {                     for(j=0; j<n; j++)             {                 printf("%d\t", matrizA[i][j]);             }             printf("\n\n");         }         printf("A Matriz [b] gerada foi: \n");         for(i=0; i<p; i++)         {             for(j=0; j<q; j++)             {                 printf("%d\t", matrizB[i][j]);             }             printf("\n\n");         }        printf(" Matriz Multiplicada\n\n");        for(i=0; i<m; i++)		{            for(j=0; j<q; j++)			{                 printf("%d\t", matrizC[i][j]);            }            printf("\n\n");         }         printf("\n\n");    }    else	{    printf("\n\n Nao ha com multiplicar as matrizes dadas ");    }    system("pause");}
Link para o comentário
Compartilhar em outros sites

Você vai precisar fazer três loops, o primeiro vai percorer a primeira matriz pelas linhas, o segundo vai percorrer a segunda matriz pelas colunas e o terceiro vai andar nos elementos das duas matrizes. Note que nesse último loop é necessário ter a restrição n == p no seu caso, pois o mesmo loop vai caminhar pelos elementos das duas matrizes.

 

Espero que tenha conseguido ajudar, da uma procurada no algoritmo de multiplicação não deve ser muito difícil de encontrar.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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