Perchè N-1? N andava benissimo. Non c'entra che C/C++ indicizzino gli array partendo da zero e quindi l'ultimo elemento ha indice N-1. Per ottenere la media non devi dividere per quest'indice ma per il numero di totale di valori, che appunto è N.
Detto questo, perchè ci sono due for nella funzione se vuoi sommare una singola colonna?
Ho visto quello che intendevi fare, dato che c'è
ma C++ non funziona mica così. In quella funzione tu calcoli la somma della prima colonna, poi la assegni a sum[j], intanto però non hai riazzerato somma, per cui alla seconda iterazione somma conterrà la somma precedente più la somma dei valori della seconda colonnacodice:sum[j]=somma;
Alla fine scorri tutte le colonne della matrice e ritorna e solo l'ultima sum[j], cioè la somma dell'ultima colonna ( che poi non è nemmeno così perchè non riazzeri somma ad ogni iterazione del for esterno ).
Quella funzione o calcola le somme per ogni colonna, mettendole in un vettore, ma poi deve ritornare il vettore.
Oppure la chiama per ogni colonna, gli passi l'indice della colonna in questione e la funzione calcolerà esclusivamente la somma della colonna interessata. Poi chi riceve tale somma farà la media e la sommerà alle medie delle colonne precedenti.

Rispondi quotando
