Aiuto programma in C (matrici)

di il
2 risposte

Aiuto programma in C (matrici)

Salve a tutti devo fare un programma che una volta creata una matrice devo creare una funzione controlla matrice che restituisca il numero di righe per cui è valida la seguente condizione:esiste almeno un elemento della riga che uguale alla somma degli elementi di tutte le righe precedenti esempio:
1 0 12
-1 1 2
0 15 1
1 0 31 in output mi darà : 3
io ho scritto il codice in questo modo
int controllo_matrice(int righe,int colonne,int mat[righe][colonne]){
int i=1,j,somma=0,sommaf=0;
int volte=0,f=0;
while(i<righe && j<colonne){
for(f=0;f<i;f++){
    for(j=0;j<colonne;j++){
        somma=somma+mat[f][j];
    }
}

    if(mat[i][j]==somma){
        volte++;
        somma=0;
    }
    else
        somma=0;
    i++;
    j++;
}
return volte;
}
ma non va mi restituisce sempre 0 qualcuno saprebbe aiutarmi? grazie

2 Risposte

  • Re: Aiuto programma in C (matrici)

    antonx ha scritto:


    Salve a tutti devo fare un programma che una volta creata una matrice devo creare una funzione controlla matrice che restituisca il numero di righe per cui è valida la seguente condizione:esiste almeno un elemento della riga che uguale alla somma degli elementi di tutte le righe precedenti esempio:
    1 0 12
    -1 1 2
    0 15 1
    1 0 31 in output mi darà : 3
    perché la matrice che hai scritto dà in output 3? Dovrebbe essere 2 stando a ciò che hai detto ...
    comunque sia prova se va bene questo
    
    while(i<righe){
                         for(f=0;f<i;f++){for(j=0;j<colonne;j++){ somma=somma+mat[f][j]; }
                                             }
                       k=0;   
                        do{
                           if(mat[i][k]==somma) { volte++; k=colonne;}
                            k++;}
                  while(k<colonne);
    i++;
    somma=0;
                     }
    return volte;
    }
    
    k è una variabile nuova che ho messo io.
    Nel tuo codice ciò che provoca gran parte dell'errore è && j<colonne nel while e l'utilizzo della variabile j nel resto del programma che dopo il ciclo della somma raggiunge il valore colonne-1 e che poi incrementata supera il valore per cui si deve fare il ciclo
  • Re: Aiuto programma in C (matrici)

    Grazie tante per la risposta,sei stato molto esaustivo
Devi accedere o registrarti per scrivere nel forum
2 risposte