给出一个十进制整数N,在相应的二进制数中找到数字1。 我试图从一个整数中找出一个二进制数中有多少个1。 但是无论有无,我都坚持在这里。
所以我想知道角色是什么'cout <<“ Reminder =” <<提醒<
#include <iostream>
using namespace std;
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;
}
}
打印:
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
但是,如果我没有'cout <<“ Reminder =” <<提醒<
Number of ones= 1
Number of ones= 3
Number of ones= 0
Number of ones= 15
Number of ones= 0
答案 0 :(得分:0)
问题是:int n = 0;整数num [n] 使用向量解决了问题。
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, const char * argv[])
{
int n = 0;
//int num[n];
vector<int> v;
cout << "Enter a set of integers: "<< endl;
cin >> n;
int num;
for (int i = 0; i < n; i++)
{
cin >> num;
v.push_back(num);
}
cout << "num of arrays: "<< endl;
for (int i = 0; i < n; i++)
{
cout << v[i] << " ";
}
cout << endl;
for(int i = 0; i < n; i++)
{
int numOfOnes = 0;
int reminder = 0;
if(v[i] <= 0)
{
numOfOnes = 0;
}
while (v[i] > 0)
{
reminder = v[i] % 2;
v[i] = v[i] / 2;
//cout <<" Reminder = "<< reminder<<endl;
if( reminder == 1)
{
numOfOnes++;
}
}
cout <<"Number of ones= "<< numOfOnes << endl;
}
答案 1 :(得分:0)
方法2: 只需更改以下位置:int num [n];
#include 使用命名空间std;
int main(int argc, const char * argv[])
{
// method 1:
int n;
cout << "Enter a set of integers: "<< endl;
cin >> n;
int num[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;
}
}