【问题标题】:Find Greatest Of Two Arrays And Store iN Third Array.?? 找出两个数组中的最大值并存储第三个数组。?
【发布时间】:2013-10-02 18:32:12
【问题描述】:

!! 希望你们身体健康.. 就我而言,我正在尝试编写代码来存储最大的价值。

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

【问题讨论】:

  • 为什么使用C风格而不是普通的数组格式?
  • 先生,我的导师这么说..因为我们正在学习指针..!!顺便说一句,如果我使用普通数组格式,错误仍然存​​在。因为 Array 实际上是一个指针,它指向数组的第一个元素。 . .
  • 提供一些输入,显示您的程序产生的输出,描述您期望的输出。
  • 对array1和array2进行排序,合并成一个结果。

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


【解决方案1】:

如果我正确理解了这个问题,您想比较两个数组中每个索引的元素,然后选择较大的一个到第三个数组中。在这种情况下,不需要 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 中使用 this 将用这个数字填充 array3 的所有元素。

【讨论】:

  • 想用它实现什么?
猜你喜欢
  • 1970-01-01
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多