Good afternoon, I'm doing an algorithm in which I need to store the total sums of each row and each column in different vectors.
For example: vector of 5 positions receives the total of the sum of 5 rows of the matrix, each result stored in a vector position.
I thought about solving the problem as follows:
void processarDados(int matriz[4][5], int vetorA[5], int vetorB[4])
{
int i, j;
int soma = 0;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 5; j++)
{
vetorA[j] = matriz[i][j]; // vetorA armazena os valores das posições [i][j] da matriz até J ou 5;
soma = soma + vetorA[j]; // É feito a soma dos valores encontrados no vetorA;
vetorA[j] = soma; //O resultado da soma é armazenado novamente no mesmo vetor.
}
}
But I can not find the expected values, for example, I type a sequence from 1 to 5, the result should be 15 however it returns me 92 ... Value far from expected. The code is not ready but I'll let you see it.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void limparTela();
void saltarLInha();
void receberDados(int matriz[4][5]);
void processarDados(int matriz[4][5], int vetorA[4], int vetorB[5]);
void resultadoDados(int matriz[4][5], int vetorA[4], int vetorB[5]);
int main(void)
{
setlocale(LC_ALL, "");
int matriz[4][5];
int vetorA[5];
int vetorB[4];
receberDados(matriz);
processarDados(matriz, vetorA, vetorB);
resultadoDados(matriz, vetorA, vetorB);
return 0;
}
void limparTela()
{
system("cls");
}
void saltarLInha()
{
printf("\n");
}
void receberDados(int matriz[4][5])
{
int i, j;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 5; j++)
{
printf("Insira o valor da posição [%i][%i]: ", i, j);
scanf("%i", &matriz[i][j]);
}
}
}
void processarDados(int matriz[4][5], int vetorA[5], int vetorB[4])
{
int i, j;
int soma = 0;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 5; j++)
{
vetorA[j] = matriz[i][j];
soma = soma + vetorA[j];
vetorA[j] = soma;
}
}
}
void resultadoDados(int matriz[4][5], int vetorA[5], int vetorB[4])
{
int i, j;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 5; j++)
{
printf("[%i] ", matriz[i][j]);
}
saltarLInha();
}
for(i = 0; i < 5; i++)
{
printf("[%i] ", vetorA[i]);
}
}