Matrizes e vetores em Dev C++ (Programação)
2 participantes
Página 1 de 1
Matrizes e vetores em Dev C++ (Programação)
Dizemos que uma matriz quadrada inteira é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundária são todas iguais.
Dada uma matriz quadrada Anxn, verificar se A é um quadrado mágico.
Tem um tempinho que tento fazer este exercício, mas empaquei no meio do código que eu tinha esboçado.
Nota: se possível usem a linguagem que trabalha com a sintaxe (não sei se esta é a melhor palavra) que usa "cin", "cout" ao invés de "printf" etc.
Dada uma matriz quadrada Anxn, verificar se A é um quadrado mágico.
Tem um tempinho que tento fazer este exercício, mas empaquei no meio do código que eu tinha esboçado.
Nota: se possível usem a linguagem que trabalha com a sintaxe (não sei se esta é a melhor palavra) que usa "cin", "cout" ao invés de "printf" etc.
____________________________________________
Forefathers, one and all… Bear witness!
Giovana Martins- Grande Mestre
- Mensagens : 7513
Data de inscrição : 15/05/2015
Idade : 23
Localização : São Paulo
Re: Matrizes e vetores em Dev C++ (Programação)
- Código:
bool magico=true;
int somas_linhas[n];
int somas_colunas[n];
int soma_principal=0;
int soma_secundaria=0;
for(int k=0; k<n; k++){
somas_linhas[k] = 0;
somas_colunas[k] = 0;
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
somas_linhas[i] += matriz[i][j]; // adiciona o valor da "célula" na soma para essa linha
somas_colunas[j] += matriz[i][j]; // adiciona o valor da "célula" na soma para essa coluna
if (i==j) //diagonal principal
soma_principal += matriz[i][j];
else
if (i == n - j - 1) // diagonal secundária
soma_secundaria += matriz[i][j];
}
}
if (soma_principal != soma_secundaria)
magico = false;
else // loop for só se necessário (basta que soma_principal não seja igual à soma_secundaria para magico=false)
for(int k=0; k<n; k++){
if (somas_linhas[k] != soma_principal || somas_colunas[k]!= soma_principal){
magico = false;
break; // não precisa verificar o restante uma vez que magico=false
}
}
No final dessas linhas você terá magico=true ou magico=false.
Está suposto que você já tem uma matriz chamada matriz e uma variável n com o número de linhas ou colunas da matriz.
Você pode facilmente adaptar o código para ser uma função booleana, colocando um return magico; no final.
PedroX- Administração
- Mensagens : 1040
Data de inscrição : 24/08/2011
Idade : 28
Localização : Campinas - SP
Re: Matrizes e vetores em Dev C++ (Programação)
Muito obrigada.
____________________________________________
Forefathers, one and all… Bear witness!
Giovana Martins- Grande Mestre
- Mensagens : 7513
Data de inscrição : 15/05/2015
Idade : 23
Localização : São Paulo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|