'In c++, why is cout is so important?

I am new to C++. I have a question would like to ask here.

Here is the original question:

Given a decimal integer N, find the number of 1 in the corresponding binary number. I am trying to find out how many 1 in a binary number from an integer.

However I'm stuck with or without cout. So I would like to know what is role does 'cout' play? Specifically in this line:

cout <<"Number of ones= "<< numOfOnes << endl; 

Look at the two print results, drastically different without this above line. Thank you.

my code:

int main(int argc, const char * argv[]) {
    int n = 0;
    int num[n];
    cout << "Enter a set of integers: "<< endl;
    cin >> n;
    for (int i = 0; i < n; i++){
        cin >> num[i];
    }
    cout << "num of arrays: "<< endl;
    for (int i = 0; i < n; i++){
        cout << num[i] << " ";
    }
    cout << endl;
    
    for(int i = 0; i < n; i++){
        int reminder = 0;
        int numOfOnes = 0;
        if(num[i] <= 0){
            numOfOnes = 0;
        }
        else{
            while (num[i] > 0){
                reminder = num[i] % 2;
                num[i] = num[i] / 2;
                cout <<" Reminder = "<< reminder<<endl;
                
                if( reminder == 1){
                    numOfOnes++;
                }
            }
        }
        cout <<"Number of ones= "<< numOfOnes << endl;
    }
}

Print:

num of arrays: 
2 100 1000 66 0 
 Reminder = 0
 Reminder = 1
Number of ones= 1
 Reminder = 0
 Reminder = 0
 Reminder = 1
 Reminder = 0
 Reminder = 0
 Reminder = 1
 Reminder = 1
Number of ones= 3
 Reminder = 0
 Reminder = 0
 Reminder = 0
 Reminder = 1
 Reminder = 0
 Reminder = 1
 Reminder = 1
 Reminder = 1
 Reminder = 1
 Reminder = 1
Number of ones= 6
 Reminder = 0
 Reminder = 1
 Reminder = 0
 Reminder = 0
 Reminder = 0
 Reminder = 0
 Reminder = 1
Number of ones= 2
Number of ones= 0

print without 'cout <<" Reminder = "<< reminder<<endl;"

Number of ones= 1
Number of ones= 3
Number of ones= 0
Number of ones= 15
Number of ones= 0

####update: find the root cause, I decalred a array int num[n] before input the number n.

int n = 0;
int num[n];
cout << "Enter a set of integers: "<< endl;
cin >> n;

So a simple change is switch the int num[n]; after cin >> n.

So a working solution:

int main(int argc, const char * argv[])
{

    int n;
    cout << "Enter a set of integers: "<< endl;
    cin >> n;
    int num[n]; #changed here.
    for (int i = 0; i < n; i++)
    {
        cin >> num[i];
    }
    cout << "num of arrays: "<< endl;
    for (int i = 0; i < n; i++)
    {
        cout << num[i] << " ";
    }
    cout << endl;

    for(int i = 0; i < n; i++)
    {
        int reminder = 0;
        int numOfOnes = 0;
        if(num[i] <= 0)
        {
            numOfOnes = 0;
        }
        else
        {
            while (num[i] > 0)
            {
                reminder = num[i] % 2;
                num[i] = num[i] / 2;
                //cout <<" Reminder = "<< reminder<<endl;

                if( reminder == 1)
                {
                    numOfOnes++;
                }
            }
        }
        cout <<"Number of ones= "<< numOfOnes << endl;
    }
}
c++


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source