Commit 40b2ff29 authored by vgsb18's avatar vgsb18 🦍

Terminado e corrigido

parents
File added
#include <stdio.h>
#include <stdlib.h>
int **multiplica(int **m1, int **m2, int linhas, int colunas, int linhaux)
{
int **aux;
int i,k,l;
aux = malloc(linhas * sizeof(int*));
for (i = 0; i < linhas ; i++)
aux[i] = malloc(colunas*sizeof(int*));
for (i = 0; i < linhas; i++)
{
for (k = 0; k < colunas; k++)
{
for (l = 0; l < linhaux; l++)
{
aux[i][k] += m1[i][l] * m2[l][k];
}
}
}
return aux;
}
int main()
{
int A,B,C,D;
printf("Indique numero de linhas da 1 matriz\n");
scanf("%d",&A);
printf("Indique numero de colunas da 1 matriz\n");
scanf("%d",&B);
printf("Indique numero de linhas da 2 matriz\n");
scanf("%d",&C);
printf("Indique numero de colunas da 2 matriz\n");
scanf("%d",&D);
int i,j,k;
if(B != C)
{
printf("Impossivel\n");
exit(1);
}
int **m1;
m1 = malloc(A * sizeof(int*));
for (i = 0; i < A ; i++)
m1[i] = malloc(B*sizeof(int*));
int **m2;
m2 = malloc(C * sizeof(int*));
for (i = 0; i < C ; i++)
m2[i] = malloc(D*sizeof(int*));
printf("Digite a primeira matriz: \n");
for (k = 0; k < A; k++)
{
for (j = 0; j < B; j++)
{
scanf("%d",&m1[k][j]);
}
}
printf("Digite a segunda matriz: \n");
for (k = 0; k < C; k++)
{
for (j = 0; j < D; j++)
{
scanf("%d",&m2[k][j]);
}
}
int **matriz;
matriz = multiplica(m1,m2,A,D,B);
printf("A matriz resultante é: \n");
for (i = 0; i < A; i++)
{
for (k = 0; k < D; k++)
printf("%d ",matriz[i][k] );
printf("\n");
}
for (i = 0; i < A; i++)
{
free(matriz[i]);
}
free(matriz);
for (i = 0; i < A; i++)
{
free(m1[i]);
}
free(m1);
for (i = 0; i < C; i++)
{
free(m2[i]);
}
free(m2);
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment