0

!!希望你们身体健康……在我这边,我正在尝试编写代码,它存储了最大的价值。

实际上,首先我找到了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);
    }
}
4

1 回答 1

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 的所有元素。

于 2013-10-02T18:53:27.233 回答