Ciao a tutti, ho un problema con l'ennesimo esercizio universitario.
Il testo dell'esercizio è il seguente:
__________________________________________________ __________________________

Sia data una matrice quadrata di numeri interi positivi di dimensione pari a N(con N < 16).

Scrivere un programma C che:
1. Legga da tastiera la dimensione N della matrice;
2. Legga da tastiera gli NxN valori della matrice controllando che siano tutti numeri positivi;
3. Per ogni riga della matrice ne calcoli la somma degli elementi;
4. Raggruppi le righe la cui somma degli elementi è uguale producendo per ogni gruppo il seguente output:

Somma <valore della somma>: Stampa delle righe la cui somma degli elementi vale <valore della somma>

N.B. Ogni riga deve essere stampata racchiusa tra parentesi tonde e con gli elementi separati da uno spa-zio. Le varie righe devono essere separate da una virgola

Esempio:

Sia data la matrice

0 2 3 1
0 6 0 0
1 2 2 4
1 1 1 3

(N=4)
Il programma deve produrre il seguente output:

Somma 6: (0 2 3 1), (0 6 0 0), (1 1 1 3)
Somma 9: (1 2 2 4)

__________________________________________________ _________________________

La mia difficoltà, sta nel non capire come uscirne dal punto 4, ho provato diversi algoritmi e ognuno di essi ha grossi problemi, voi come suggerite?
Intanto posto il testo fatto fino al punto 3 (il punto 4 è stato fatto però senza controllo di somma uguale)

codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int main()
{
 int N,i,j=0;
 int temp=0; 
 int condizione=0;

//Inserimento in N della grandezza matrice quadrata 
do
{
 printf("Inserisci la dimensione della matrice quadrata ");
 scanf("%d",&N);
 if(N<16)
  condizione=0;
 else
 {
  condizione=1;
  printf("Errore N, deve essere minore di 16 ");
 } 
}while(condizione==1);

//Creazione matrice quadrata, azzeramento condizione, creazione vettore somme righe
int matrice[N][N];
condizione=0;
int vet[N];

for(i=0;i<N;i++)
 vet[i]=0;

//Input matrice con controllo sui numeri positivi
for(i=0;i<N;i++)
{
 for(j=0;j<N;j++)
 {
  do 
  {
   printf("[%d][%d]",i+1,j+1);
   scanf("%d",&matrice[i][j]);
   if(matrice[i][j]<0)
    {
     printf("Errore, i valori negativi non sono ammessi ");                 
     condizione=0;
    }
   else 
     condizione=1;
  }while(condizione==0); 
 }
 printf("\n");
} 

//Somma delle righe della matrice
for(i=0;i<N;i++)
{
 for(j=0;j<N;j++)
 {
  temp=temp+matrice[i][j];
  vet[i]=temp;
 }
 temp=0;
} 
  
//Stampa somme
for(i=0;i<N;i++)
 printf("La somma della %d riga e' %d \n",i+1,vet[i]);
  
//Stampa raggruppata di righe di matrice
for(i=0;i<N;i++)
{
 printf("Somma %d ( ",vet[i]);
  for(j=0;j<N;j++)
  {
   printf("%d ",matrice[i][j]);
  }
 printf(")");
  
 printf("\n");
}


  system("pause");  
}
Grazie a tutti coloro che mi aiuteranno,
auguroni!!