Quel codice non ha senso ...
Per trovare le 3 diagonali guarda questo esempio
int main()
{
int m[3][5] = {
{1, 3, 3, 5, 3},
{2, 4, 1, 2, 5},
{3, 5, 5, 1, 3}
};
int r, c, z;
for(c=0; c<3; c++)
{
printf("D%d : ", c+1);
for(r=0, z=c; r<3; r++, z++)
printf("%d ", m[r][z]);
printf("\n");
}
return 0;
}