如何将两个数组的负数合并为一个数组?

Pr0t3

我需要合并两个数组中的负数。所以我在做什么:向数组中添加所需的元素,然后尝试添加到<0的合并数组元素中。这是我的尝试代码:

int main()
{

    int arr1[100], arr2[100], size1, size2, size, i, j, k, merge[200];
    cout<<"Enter Array 1 Size : ";
    cin>>size1;
    cout<<"Enter Array 1 Elements : ";
    for(i=0; i<size1; i++)
    {
        cin>>arr1[i];
    }
    cout<<"Enter Array 2 Size : ";
    cin>>size2;
    cout<<"Enter Array 2 Elements : ";
    for(i=0; i<size2; i++)
    {
        cin>>arr2[i];
    }
    for(i=0; i<size1; i++)
    {
        if(arr1[i]<0)
        {
          merge[i]=arr1[i];
        }

    }

    size=size1+size2;
    for(i=0, k=size1; k<size && i<size2; i++, k++)
    {
         if(arr2[i]<0)
        {
        merge[k]=arr2[i];
        }
    }
    cout<<"Now the new array after merging is :\n";
    for(i=0; i<size; i++)
    {
        cout<<merge[i]<<" ";
    }

}

编译后,我得到了错误的合并数组。它同时打印所有负数和所有正数(但随机数2084562等)。也许您知道哪里出了问题以及如何解决?

暗影狼

设置合并数组元素的2个循环中存在逻辑错误。每当值不为负时,它们就会跳过混合数组中的索引。跳过的值在打印时仍未初始化,因此从理论上讲它们可以是任何值(实际上是未定义的行为)。

解决此问题的一个示例可能是创建一个整数,该整数对合并数组集中的元素数量进行计数。例如:

int negativecount = 0;
for(i=0; i<size1; i++)
{
    if(arr1[i]<0)
    {
      merge[negativecount++]=arr1[i];
    }
}
size=size1+size2;
for(i=0; i<size2 && negativecount < size; i++)
{
    if(arr2[i]<0)
    {
        merge[negativecount++]=arr2[i];
    }
}

这样,您将跟踪已经存储的元素数量,并且所有元素都将正确设置。您可以使用以下命令打印它们:

for(i = 0; i < negativecount; ++i)
{
    std::cout << merge[i] << " ";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将两个数组的排序合并为一个数组?

如何将两个数组合并为一个对象数组

如何将两个数组合并为一个嵌套数组?

如何将两个数组缓冲区合并为一个?

如何将两个数组合并为一个 php

如何将两个数组列表按升序合并为一个

如何将这两个数组合并为一个

php - 如何将最后两个数组元素合并为一个数组元素

如何将两个可观察的数组合并为一个数组?

如何将两个数组(歌曲和标题)合并为一个多维数组?

如何将两个数组合并为一个?保留数组元素和长度

如何将数组转换为数组对象并将两个数组合并为一个数组?

将两个数组合并为一个数组

将两个数组合并为一个数组列表

python:将两个数组合并为一个数组

如何将两个数组合并为一个并删除所有相似的值?

如何将2个数组合并为一个数组?

如何使用.map和.filter将两个数组合并为一个

将两个json / javascript数组合并为一个数组

PHP将两个关联数组合并为一个数组

按顺序将两个int数组合并为一个数组

将两个数组合并为一个结果数组

将两个数组值合并为一个对象数组

将两个数组合并为一个2D数组-PHP

如何根据键匹配值将两个对象数组合并为一个数组

如何使用jq将两个文件中的数组合并为一个数组?

如何将两个 API 响应数组合并为一个数组并返回数据 Angular 8

反应本机如何将两个数组与一个函数合并

如何将2个数组合并为一个关联数组