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).