saudações,
estou ficando roxa por não conseguir resolver meu codigo.
eu estou fazendo um programa que vai ler o tamanho que ele quer q a matriz terá, e depois vai ler todos os numeros das linhas e colunas e vai guardar nessa matriz.
depois disso preciso somar cada linha, cada coluna, e as diagonais, se todos esses forem iguais, resulta em um quadrado magico.
por isso criei um vetor para guardar o valor de cada linha, e um vetor pra guardar o valor de cada coluna.. só que eles estão valendo uns valores aleatórios (veja fotografia anexada), e eu nao to conseguindo fazer esses dois vetores valer zero
(to usando sempre para teste o tamanho valendo 3, e os numeros da matriz de 1 a 9)
ps: nao sei se o jeito de se somar tá certo.. iria conferir depois, mas como o vetor apresenta um valor zoado eu nao consigo saber se tá certo a conta.. entao o foco não é a conta, e sim zerar o vetor
ps2: comentei o codigo pra explicar como eu tava pensando, caso tiver algo errado add um /* */ comentando por favorr
#include<stdio.h>
int main()
{
int tamanho=0, colunas=0, linhas=0;
printf("\n\t\t---VAMOS CONFERIR SE SUA TABELA É UM QUADRADO MAGICO!---");
printf("\n\n\t\t\t[pressione ENTER para continuar]");
getchar();
printf("\n\n\nQuantas linhas/colunas quer que sua tabela tenha: ");
scanf("%d", &tamanho);
getchar();
int quadrado[tamanho][tamanho]; //declaraçao da matriz com o tamanho q o usuario quer
printf("\n\nAgora é necessário que dite os valores!");
//laço para receber os valores e guardar na matriz
for (linhas = 0; linhas < tamanho; linhas++)
{
for (colunas = 0; colunas < tamanho; colunas++)
{
printf("\n\n\t-> Valor da linha %d e coluna %d: ", linhas+1, colunas+1);
scanf("%d", &quadrado[linhas][colunas]);
}
}
int posicao = tamanho; //nova variavel pra colocar no indice do vetor, e será o mesmo tamanho que o usuario deu
int soma_linhas[posicao], soma_colunas[posicao]; //declaraçao dos dois vetores para linha e coluna
int soma_diagprincipal =0, soma_diagsecundaria=0; //duas variaveis para guardar o valor das diagonais
posicao=0; //zerando valor do indice do vetor, antes valia tamanho
//laço para percorrer matriz e somar todos as colunas de cada linha
for (linhas = 0; linhas < tamanho; linhas++)
{
for (colunas = 0; colunas < tamanho; colunas++)
{
soma_linhas[posicao] = soma_linhas[posicao] + quadrado[linhas][colunas];
}
//depois de percorrer todas as colunas, posicao ++ para ir pra segunda posiçao do vetor
posicao++;
}
posicao=0;//zerando valor do indice do vetor, antes valia tamanho
//laço para percorrer matriz e somar todos as linhas de cada coluna
for (colunas = 0; colunas < tamanho; colunas++)
{
for (linhas = 0; linhas < tamanho; linhas++)
{
soma_colunas[posicao] = soma_colunas[posicao] + quadrado[linhas][colunas];
}
//depois de percorrer todas as colunas, posicao ++ para ir pra segunda posiçao do vetor
posicao++;
}
//aqui ta dando o resultado certo, nao é necessario ver
for (linhas = 0; linhas < tamanho; linhas++)
{
for (colunas = 0; colunas < tamanho; colunas++)
{
if (linhas == colunas)
{
soma_diagprincipal = soma_diagprincipal + quadrado[linhas][colunas];
}
}
}
//aqui ta dando o resultado certo, nao é necessario ver
for (colunas = 0; colunas < tamanho; colunas++)
{
for (linhas = 0; linhas < tamanho; linhas++)
{
if (linhas +1 + colunas+1 == tamanho+1)
{
soma_diagsecundaria = soma_diagsecundaria + quadrado[linhas][colunas];
}
}
}
//laço para printar temporariamente o valor dos vetores p conferir
for (posicao = 0; posicao < tamanho; posicao++)
{
printf("\nLINHAS %d", soma_linhas[posicao]);
printf("\nCOLUNAS %d", soma_colunas[posicao]);
}
//aqui ta dando o resultado certo, nao é necessario ver
printf("\n\n");
printf("\nPRIMA %d", soma_diagprincipal);
printf("\nSECUN %d", soma_diagsecundaria);
printf("\n\n");
return 0;
}
adicionado 11 minutos depois
update: consegui resolver criando uma variavel nova pra guardar e somar os valores da matriz
ex: soma = soma +matriz
soma = 0
indice vetor ++
...
masssss eu queria saber como resolver desse jeito aí do vetor = vetor + matriz
=/