'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;
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
