首页 > 解决方案 > 从 C++ 中的函数返回存储的数组值

问题描述

我正在编写一个程序,其中输入是一个数字,它被转换为二进制字符串,二进制位存储在一个数组中。它是针对两个/(或更多)数字完成的,并且在转换后我想在两个位字符串之间执行按位异或运算。为此,我想定义一个函数并获取不同数字的输出。怎么做 ?我的尝试

#include <bits/stdc++.h>
using namespace std;

int decTobin1(int decimal, int *binary1[6])
{
    int binary1[6]{};
    int round{};
    int rem;
    while (decimal != 0)
    {
        *binary1[round] = decimal % 2;
        decimal /= 2;
        ++round;
    }
}
int decTobin2(int decimal, int *binary2[6])
{
    int binary2[6]{};
    int round{};
    int rem;
    while (decimal != 0)
    {
        *binary2[round] = decimal % 2;
        decimal /= 2;
        ++round;
    }
}
/*int decTobin3(int decimal, int* binary3[6])
{
    int binary3[6]{};
    int round{};
    int rem;
    while (decimal != 0)
    {
        *binary3[round] = decimal % 2;
        decimal /= 2;
        ++round;
    }
}*/
int main()
{
    int binary1[6], binary2[6]; //binary3[6];
    cout << "Enter a number :";
    cout << "Enter a number :";
    int num1, num2;
    cin >> num1 >> num2;
    int num1 = decTobin1(num1, &binary1);
    int num2 = decTobin2(num2, &binary2);
    //int newkey2 = decTobin3(num3,&binary3);
    cout << "Print :";
    for (int k{}; k < 6; ++k)
    {
        cout << binary1[k] << endl;
    }
    for (int k{}; k < 6; ++k)
    {
        cout << binary2[k] << endl;
    }
    /*for(int k{};k<6;++k){
        cout << binary3[k] << endl;
    }*/
}

第二次尝试...

using namespace std;
struct binary
{
    int binary1[6]{};
};
binary decTobin()
{
    int round{};
    int decimal;
    int binary1[6]{};
    int rem;
    while (decimal != 0)
    {
        binary1[round] = decimal % 2;
        decimal /= 2;
        ++round;
    }
    binary temp{binary1[0], binary1[1], binary1[2], binary1[3], binary1[4], binary1[5]};
    return temp;
}
int main()
{
    int binary1[6], binary2[6]; //binary3[6];
    cout << "Enter a number :";
    //cout << "Enter a number :";
    int num1, num2;
    cin >> num1; // >> num2 ;
    binary zero{decTobin()};
    //int num1   = decTobin(num1,&binary1);
    //int num2 = decTobin2(num2,&binary2);
    //int newkey2 = decTobin3(num3,&binary3);
    cout << "Print :";
    for (int k{}; k < 6; ++k)
    {
        cout << zero.binary1[k] << endl;
    }
    /*for(int k{};k<6;++k){
        cout << binary3[k] << endl;
    }*/
}

我试图运行它,但它崩溃了。谁能帮我吗。我基本上想学习返回数组值的方法。我也是编程和学习的新手,所以一点解释会很有帮助。谢谢你。

标签: c++arrays

解决方案


推荐阅读