So, my program is supposed to receive test inputs like:
3
1 0 1
0 1 1
1 0 1
5
1 1 1 0 0
1 1 0 1 1
1 0 1 0 1
0 1 0 1 0
0 1 1 1 1
3
1 0 0
0 1 0
0 0 1
2
1 1
1 1
0
where the single-valued lines (n) are the size of a NxN matrix located in the following n entries like shown above. If n = 0, the program stops. The output must be the biggest sum amongst the columns of the matrix. So I expect outputs like this:
3
4
1
2
After a lot of effort and wasted time, I managed to get the first output correctly, but I noticed the following ones sometimes summed up and suggested some variable was not being reset. Here's my code:
#include <iostream>
using namespace std;
int pop = 0;
int main() {
    int n, i, j, k;
    cin >> n;
    while (n!=0) {
        int alunos[n]={0};
        pop = 0;
        for (i=0;i<n;i++) {
            int array[n]={0};
            for (j=0;j<n;j++) {
                cin >> array[j];
                if (array[j]==1) alunos[j]++;
            }  
        }
        for (k=0;k<n;k++) {
            if(alunos[k]>pop) pop = alunos[k];
        }
        cout << pop << endl;
        cin >> n;
    }
    return 0;
}
Noticed that I'm outputting pop(the biggest sum) and resetting it to 0 everytime a new n is given. alunos[n] is an array with the sums of each column (also resetted on every while loop) and array[n] is just an auxiliary array for reading each line of input. My outputs with this are:
3
5
6
8
Thanks in advance!
 
     
    