找到最大的两个阵列并存储第三阵列。

时间:2013-10-02 18:32:12

标签: c++ arrays visual-c++

!! 希望你们的健康状况良好.. 在我这边,我正在尝试编写存储最大价值的代码。

实际上我首先在array1和array2之间找到Max Number,然后将它存储在array3中.. 是的,这很简单,但结果不正确.. 在浪费时间并使用调试器之后,我仍然无法跟踪问题。

我希望你们会帮助我... 谢谢你的考虑..

int max_hit(int *array1, int *array2, int size)
{
    for(int i = 0; i < size; i++)
    {
        if(*(array1+i) > *(array2+i))
        {
                    return *(array1+i);
        }
        else if(*(array2+i) > *(array1+i))
            {
                    return *(array2+i);
                }
    }

}

void fill_third(int *array1, int *array2, int *array3, int size)
{
    for(int j = 0; j < size; j++)
    {
        *(array3+j) = max_hit(array1, array2, size);
    }
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解了问题,您需要比较每个索引的两个数组中的元素,并选择较大的数组到第三个数组。在这种情况下,不需要max_hit函数,只需为每个索引使用您最喜欢的max函数。 例如:

void fill_third(int *array1, int *array2, int *array3, int size)
{
    for (int i = 0; i < size; ++i)
    {
        array3[i] = std::max(array1[i], array2[i]);
    }
}

当前表单中的max_hit函数仅选择第一个索引处的较大元素,其中两个数组的元素不相等。在fill_third中使用它将使用此数字填充array3的所有元素。