gpt4 book ai didi

c++ - 函数输出到int数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:51 26 4
gpt4 key购买 nike

我正在开发一个程序,该程序从命令行读取两个十进制数,将它们转换为二进制数,将它们相加,然后输出二进制数和十进制数的和。

我创建了一个将十进制输入转换为二进制的函数,但现在我不知道如何将这些值转换为 int 数组。

例如:输入:./a.out 3 2

我的函数将 3 转换为 11 并将 2 转换为 10

现在我需要将这些值放在一个 int 数组的末尾,这样它看起来像这样:0000000000000000000000000000011 和 00000000000000000000000000000010

这样我添加二进制数的逻辑就可以正常工作。

这是我的尝试,但它说它可以从 void 分配 int:

#include <iostream>
#include <cstdlib>
#include <string.h>

using namespace std;

void binary(int);

int main(int argc, char* argv[])
{
if(argc != 3)
{
cerr << "Invalid number of operands" << endl;
return 1;
}
int i;
int arg1 = atoi(argv[1]);
int arg2 = atoi(argv[2]);
int sum = arg1 + arg2;
int a[32];
int b[32];
int c[32];
int carry = 0;
bool print = false;

for(i = 0; i < 32; i++)
{
a[i] = 0;
b[i] = 0;
c[i] = 0;
}
for(i = 31; i >= 0; i--)
{
a[i] = binary(arg1); //PROBLEM AREA
b[i] = binary(arg2); //PROBLEM AREA
}
for(i = 31; i >= 0; i--)
{
if (a[i] == 1 && b[i] == 1 && carry == 0)
{
c[i] = 0;
carry = 1;
}
else if (a[i] == 1 && b[i] == 0 && carry == 0)
{
c[i] = 1;
carry = 0;
}
else if (a[i] == 0 && b[i] == 0 && carry == 0)
{
c[i] = 0;
carry = 0;
}
else if (a[i] == 0 && b[i] == 1 && carry == 0)
{
c[i] = 1;
carry = 0;
}
else if (a[i] == 1 && b[i] == 1 && carry == 1)
{
c[i] = 1;
carry = 1;
}
else if (a[i] == 1 && b[i] == 0 && carry == 1)
{
c[i] = 0;
carry = 1;
}
else if (a[i] == 0 && b[i] == 0 && carry == 1)
{
c[i] = 1;
carry = 0;
}
else if (a[i] == 0 && b[i] == 1 && carry == 1)
{
c[i] = 0;
carry = 1;
}
}
if(carry == '1')
cout << carry;
for (i = 0; i < 32; i++)
{
if (c[i] == 1)
print = true;
if (print)
cout << c[i];
}
cout << " = " << sum;
cout << endl;
return 0;
}

void binary(int number)
{
int remainder;
if(number <= 1)
{
cout << number;
return;
}
remainder = number % 2;
binary(number >> 1);
cout << remainder;
}

如有任何想法或建议,我们将不胜感激!

最佳答案

a[i] = binary(arg1);//问题区域

binary() 方法是一个void 方法。您应该从中返回一个 int 值,以便能够将其分配给 a[i]。

关于c++ - 函数输出到int数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com