Thiago Mattos Postado Abril 20, 2018 Denunciar Share Postado Abril 20, 2018 #include <stdio.h> #include <stdlib.h> #include <time.h> //PROTOTIPOS void gerarMatriz(int tam, int mat[tam][tam]); void mostraMatriz(int tam, int mat[tam][tam]); int somaDiagonalPrincipal(int tam, int mat[tam][tam]); void mostraVetor(int vet[], int tam); void somaLinhas(int tam, int mat[tam][tam], int vet[]); void somaColunas(int tam, int mat[tam][tam], int vet[]); int testaIgualVetor(int vet[], int tam); //MAIN int main() { int n; scanf("%i", &n); int mat[n][n]; gerarMatriz(n, mat); mostraMatriz(n, mat); srand=(time(NULL)); int somaDP = 0; somaDP = somaDiagonalPrincipal(n,mat); //soma linhas int vetL[n]; somaLinhas(n, mat, vetL); printf("\nSoma das linhas: "); mostraVetor(vetL, n); //soma colunas int vetC[n]; somaColunas(n, mat, vetC); printf("\nSoma das colunas: "); mostraVetor(vetC, n); printf("\nSoma diagonal principal %i\n", somaDP); int testaL, testaC; testaL = testaIgualVetor(vetL, n); testaC = testaIgualVetor(vetC, n); if (testaL && testaC && somaDP && somaDP == vetL[0]) { printf("Matriz Magica"); } else { printf("Matriz não Magica"); } return 0; } //FUNCOES void gerarMatriz(int tam, int mat[tam][tam]) { int i, j; for (i = 0; i < tam; i++) { for (j = 0; j < tam; j++) { mat[i][j]= (rand()% tam)+1; } } } void mostraMatriz(int tam, int mat[tam][tam]) { int i, j; for (i = 0; i < tam; i++) { for (j = 0; j < tam; j++) { printf("%i ", mat[i][j]); } printf("| \n"); } } int somaDiagonalPrincipal(int tam, int mat[tam][tam]) { int i, soma = 0; for (i = 0; i < tam; i++) { soma += mat[i][i]; } return soma; } void mostraVetor(int vet[], int tam) { int i; for (i = 0; i < tam; i++) { printf("%i ", vet[i]); } } void somaLinhas(int tam, int mat[tam][tam], int vet[]) { int i, j; for (i = 0; i < tam; i++) { vet[i] = 0; for (j = 0; j < tam; j++) { vet[i] += mat[i][j]; } } } void somaColunas(int tam, int mat[tam][tam], int vet[]) { int i, j; for (j = 0; j < tam; j++) { vet[j] = 0; for (i = 0; i < tam; i++) { vet[j] += mat[i][j]; } } } int testaIgualVetor(int vet[], int tam) { int i; for (i = 1; i < tam; i++) { if (vet[i] != vet[i-1]) { return 0; } } return 1; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thiago Mattos
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.