Ciao a tutti, vi posto il testo del programma che dovrei realizzare
Esercizio 2 ----------- 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)
(L'ultimo punto non l'ho ancora fatto)
Il problema sta nel fatto che nel vettore dove io ho deciso che andranno i valori della somma della matrice escono sempre valori a casaccio, non riesco a capire il motivo anche perchè ho ancora poca esperienza col C...
Ecco il codice
codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
int N,i,j,temp;
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;
}
}
//Stampa vettore somma
for(i=0;i<N;i++)
printf("%d",vet[i]);
system("pause");
}
Grazie anticipatamente a tutti quelli che mi aiuteranno