Asafe Colanigo Postado Maio 23, 2018 Denunciar Share Postado Maio 23, 2018 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; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Asafe Colanigo
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;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.