Somma delle colonne di una matrice in C

In questa pagina viene mostrato come creare un programma in C, in grado di sommare gli elementi che sono contenuti in ciascuna colonna di una matrice. In particolare, al termine dell’esecuzione del programma, ci sarà un array di lunghezza pari al numero di colonne della matrice, che conterrà in ogni posizione la somma degli elementi che compongono ciascuna colonna della matrice.

Chiaramente, per creare un programma del genere, abbiamo bisogno di dichiarare una matrice. Nel nostro caso, la matrice viene anche inizializzata con dei valori arbitrari, evitando di chiedere all’utente di inserire dei valori da tastiera.

Nello specifico, la matrice possiede dimensione MxN, dove M ed N sono due macro definite dalla direttive #define, e rappresentano, rispettivamente, il numero di righe e di colonne della matrice.

Per poter immagazzinare la somma di ciascuna colonna, abbiamo bisogno di un'ulteriore matrice di dimensione 1xN, ovvero una matrice formata solamente da un riga, detta anche matrice riga. Risulta, quindi, essere più adatto utilizzare un array di lunghezza pari ad N.

Per poter effettuare la somma di ciascun elemento contenuto in ogni colonna, dobbiamo scorrere l’intera matrice usando due cicli for innestati. In particolare, il ciclo for esterno viene usato per scorrere le colonne, mentre il ciclo for interno viene usato per scorrere le righe. In questo modo ad ogni iterazione del ciclo esterno, possiamo effettuare la somma di ciascun elemento che viene letto dal ciclo interno. Per far ciò facciamo uso di una variabile chiamata "somma", in modo da tener conto del totale della somma dei valori.

Al termine del ciclo for interno, ovvero, una volta passati tutti gli elementi della colonna indicata dal ciclo esterno, inseriamo il valore della variabile "somma" all’interno dell’array nella posizione pari al numero di colonna della matrice. Dopodiché, resettiamo la variabile somma a 0, in modo che possa essere utilizzata alla prossima iterazione del ciclo esterno.

Terminati entrambi i cicli for, l’array conterrà al suo interno la somma di ciascuna colonna della matrice iniziale e non rimane che stampare a schermo tali valori.

Codice per sommare gli elementi di ciascuna colonna di una matrice in C

Di seguito viene riportato il codice intero per sommare gli elementi di ciascuna colonna di una particolare matrice in C.

#include <stdio.h> #define M 4 #define N 3 int main(){     int mat[M][N] = {{2, 6, 7}, {4, 2, 1}, {8, 3, 5}, {3, 7, 0}};     int colonne[N];     int somma = 0;     for(int i = 0; i < N; i++){         for(int j = 0; j < M; j++){          somma += mat[j][i];         }         colonne[i] = somma;         somma = 0;     }     for(int i = 0; i < N; i++){         printf("%d ", colonne[i]);     }     return 0; } // Output: 17 18 13