Ciao....visto che non hai ancora affrontato l'allocazione dinamica della memoria, prova a dare un'occhiata a questa:
codice:
#include <stdio.h>
#include <stdlib.h>
#define N 16
int main()
{
int n, i, j, k;
int matrix[N-1][N] = {0};
do
{
printf("Dimensione della matrice: ");
scanf(" %d",&n);
}
while(n <= 0 || n >= N);
printf("Inserimento valori della matrice\n");
for(i=0; i<N; i++)
{
if(i < n)
{
printf("\nRiga %d:\n",i+1);
for(j=0; j<n; j++)
{
printf("Valore %d: ",j+1);
scanf(" %d",&matrix[i][j]);
if(matrix[i][j] < 0)
{
printf("Valore errato!\n");
j--;
}
else
matrix[i][n] += matrix[i][j];
}
}
}
printf("\nCalcolo delle somme.\n");
for(i=0; i<n; i++)
{
if(matrix[i][n] >= 0)
{
printf("Somma %d: (", matrix[i][n]);
for(j=0; j<n; j++)
printf("%d%s", matrix[i][j], ((j == n-1) ? ")" : " "));
for(j=i+1; j<n; j++)
{
if(matrix[i][n] == matrix[j][n])
{
printf(", (");
for(k=0; k<n; k++)
printf("%d%s", matrix[j][k], ((k == n-1) ? ")" : " "));
matrix[j][n] = -1;
}
}
printf("\n");
}
}
return 0;
}
L'ho provata solo con i valori dell'esempio nel testo dell'esercizio, quindi magari fai qualche prova con altri valori o con dimensione diversa da quella dell'esempio.
Fammi sapere se può andare.