Boh io l'avrei scritta così:
codice:
#include <stdio.h>
#define N 5 //vabbè se la matrice è quadrata te ne basta uno no?
#define M 5
int main()
{
int i, j, somma=0, array[M][N];
printf("\nInserisci i valori della matrice quadrata %dx%d:\n", M, N);
for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
scanf("%d", &array[i][j]);
}
// calcola la somma
for(i=0; i<M; i++)
{
for(j=0; j<i+1; j++)
somma += array[i][j];
printf("\nSomma = %d\n", somma);
}
//printf("\nSomma = %d\n", somma);
fflush(stdin);
getchar();
}
Ti incasini senz'altro di meno con gli indici no?E poi è più leggibile e logica,arrivi con l'indice di colonna dall'inizio al valore uguale all'indice di riga attuale (cioè fino alla diagonale compresa).