Bom dia/noite pessoal do fórum scriptbrasil, estou tendo dificuldades com o seguinte exercício em C envolvendo matrizes:
Consegui escrever o programa, ele inicia e "funciona", entretanto não dá o resultado esperado.
esse é meu programa atual:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
// mat5 = mat3(mat1 * mat2) + mat4b(mat4(2*mat2) - mat1)
void mat3func(float mat1[][3], float mat2[][3], float mat3[][3])
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
mat3[j] = mat3[j] + (mat1[k] * mat2[k][j]);
}
}
}
}
void mat4func(float mat4[][3], float mat4a[][3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
mat4a[j] = mat4[j] * 2;
}
}
}
void mat4bfunc(float mat4b[][3], float mat4[][3], float mat1[][3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
mat4b[j] = mat4[j] - mat1[j];
}
}
}
void mat5func(float mat5[][3], float mat3[][3], float mat4b[][3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
mat5[j] = mat3[j] + mat4b[j];
}
}
}
int main()
{
setlocale(LC_ALL, "portuguese");
float mat1[3][3];
float mat2[3][3];
float mat3[3][3];
float mat4[3][3];
float mat4a[3][3];
float mat4b[3][3];
float mat5[3][3];
int i, j, k;
printf("Digite os números da matriz 3x3 A:");
for(i=0;i < 3; i++)
{
for(j = 0; j < 3; j++)
{
printf("\nMatriz A[%d][%d] = ", i+1, j+1);
scanf("%d", &mat1[j]);
}
}
printf("Digite os números da matriz 3x3 B:");
for(i = 0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("\nMatriz B[%d][%d] = ", i+1, j+1);
scanf("%d", &mat2[j]);
}
}
mat3func(mat1, mat2, mat3);
mat4func(mat4, mat4a);
mat4bfunc(mat4b, mat4, mat1);
mat5func(mat5, mat4, mat4b);
for(i=0; i<3;i++){
for(j=0;j<3;j++)
{
printf("%.0f ", mat5[j]);
}
printf("\n");
}
getch();
return 0;
}