gRoOvE 0 Denunciar post Postado Maio 25, 2008 não consigo implementar a lógica para achar a diagonal secundária =/ #include "stdafx.h" #define L 3 #define C 3 int main(void) { int M[L][C]; int x,y,somaL,somaC,diagP,diagS; somaL = 0; somaC = 0; diagP = 0; diagS = 0; for(x=0;x<L;x++) { for(y=0;y<C;y++) { printf("Digite um numero para M[%d][%d]: ",x,y); scanf("%d",&M[x][y]); } } for(x=0;x<L;x++) { for(y=0;y<C;y++) { printf("\nmatriz: M[%d][%d] = %d",x,y,M[x][y]); } } for(y=0,x=0;y<L,x<C;y++,x++) { somaL = somaL + M[0][y]; somaC = somaC + M[x][1]; } printf("\n\nSoma da linha 0: %d",somaL); printf("\nSoma da coluna 1: %d\n",somaC); for(x=0;x<L;x++) { for(y=0;y<C;y++) { if(x == y) { diagP = diagP + M[x][y]; } else if(x + 1 == 3 - (y + 1) + 1) { printf("\n%d",x); diagS = diagS + M[x][y]; printf("\n%d",diagS); } } } printf("\nSoma da Diagonal principal: %d\n",diagP); printf("\nSoma da Diagonal secundaria: %d\n",diagS); /*for(x=0,y=0;x<L,y<C;x++,y++) { if(M[x] == C - y + 1) { diagS = diagS + M[x][y]; } } printf("\nSoma da Diagonal secundaria: %d\n",diagS); */ } Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Maio 25, 2008 Meu amigo achar diagonal secundaria é muito simples for(i=0,j=n-1;i<n,j>=0;i++,j--) printf("%d",mat[i][j]); Espero que ajude. Qualquer duvida poste ai!!! Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Maio 25, 2008 ahh legal, deu certo :D mas veja como eu estava tentando fazer, peguei a lógica de um livro, dizia assim: linha = totalcolunas - coluna + 1 fiz teste de mesa e funcionou dessa outra forma, mas soh se comecar a contar do 1...mas como matriz começa a contar do 0, tentei equilibrar os valores mas não teve como. Compartilhar este post Link para o post Compartilhar em outros sites