Cosa significa non parte?
Se vuoi scrivere una funzione lo devi scrivere fuori del main e in generale fuori da una funzione qualsiasi quindi:
int Somma(int M[][], int d)
{
int somma = 0;
for ( col = 0; col < d ; col++)
{
for ( riga = 0; col < d; riga++)
{
somma += M [col][riga];
}
}
return somma;
}
Questa è la funzione Somma che ritorna un int. Come vedi la somma lo devi fare aggiungendo i valori di col e riga che variano di volta in volta (tu faccevi solo la somma di un valore d mai raggiungibile). Questa funzione va piazzata sopra il main così il compilatore non banfa, oppure metti solo la dichiarazione della funzione sopra il main e lo sviluppo sotto.
//dichiarazione
int Somma(int M[][], int d);
//main
int main(void)
{
......
}
//sviluppo
int Somma(int M[][], int d)
{
......
}
Dire che non parte o non va non ci aiuta. Devi dire che errore da e soppratutto cosa non capisci di quell'errore solo così puoi imparare dai tuoi errori.