C++, sumar diagonal principal de matriz 6*6

demian_thorne
28 de Noviembre del 2005
Sumar diagonal principal de matriz 6*6 en C++

diagonal principal?
si alguien me podria explicar.

logre sumar la matriz, pero me suma todos los numeros que ingrese, no se si es eso la diagonal principal?!
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
main()
{

int i,j,m[6][6],suma=0;
for (i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("Ingrese valores para la matriz[%d][%d]: ",i,j);
scanf("%d",&m[i][j]);

}
}
printf("nn");
printf("La matriz es: n");
for (i=0;i<6;i++)
{
for(j=0;j<6;j++)
printf("%dt",m[i][j]);
printf("n");
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
suma=suma+m[i][j];
}
printf("nLa suma de la diagonal principal de la matriz es: %d",suma);
getch();
}

kike
28 de Noviembre del 2005
la diagonal principal de una matriz cuadrada 6X6, es:
matr[0][0],matr[1][1],matr[2][2],matr[3][3],matr[4][4],matr[5][5].

como ves todos los valores del array cuyos indices coinciden pertenecen a la diagonal principal.
Con lo cual si incluyes un if, dentro del bucle de suma, que excluya los elementos que no tienen iguales indices tienes la solucion.

for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(i==j)
suma=suma+m[i][j];
}
}

demian_thorne
28 de Noviembre del 2005
muchas gracias KIKE por la explicacion, agregue el if al programa y sumo:
m[0][0],m[1][1],m[2][2],m[3][3],m[4][4],m[5][5].

gracias

demian_thorne
28 de Noviembre del 2005
alo alo, tengo que sumar los numeros que no estan en la diagonal principal
como ago eso??

kike
28 de Noviembre del 2005
con el mismo codigo arreglas el if para que sume los que no tienen igual indice, es decir sustituye

if(i==j)
por
if(i!=j)

eso es todo