C ++比较2个数组中的整数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++比较2个数组中的整数?相关的知识,希望对你有一定的参考价值。

所以我的任务是制作3个数组。用户必须将整数放在2个数组中,然后我必须比较每个位置的整数,并将更高的整数放在第三个数组中,必须在屏幕上显示。

这是我的计划:

int main() {    
    int n; // number of elements
    cin >> n;

    int* array  = new int[n];
    int* array2 = new int[n];
    int* array3 = new int[n];

    cout << "First array: " << "
";
    for (int i = 0; i < n; i++) {
        cin >> array[i];
    }

    cout << "Second array:" << "
";
    for (int i = 0; i < n; i++) {
        cin >> array2[i];
    }

    for (int i = 0; i < n; i++) {
        if (array[i] > array2[i]) {
            array[i] = array3[i];
            continue;
        } else if (array[i] <= array2[i]) {
            array2[i] = array3[i];
            continue;
        }
    }
    for (int i = 0; i < n; i++) {
        cout << array3[i] << "
 ";
    }
    delete[] array;
    delete[] array2;
    delete[] array3;
}

所以,如果我的第一个数组是1 2 3 4而第二个数组是5 6 7 8 - 它会显示一些大量的负数作为输出(-842150421)。

我的错误在哪里?

答案

你正在展示你的array3,但是你还没有添加任何数据,你必须将数据分配给你的数组3我假设你在数组和array2之间进行比较后得到更大的数据到array3。

int main(){

int n; //number of elements
cin >> n;
int* array = new int[n];
int* array2 = new int[n];
int* array3 = new int[n];
cout << "First array: " << "
";
for (int i = 0; i < n; i++)
    cin >> array[i];
cout << "Second array:" << "
";
for (int i = 0; i < n; i++)
    cin >> array2[i];

for (int i = 0; i < n; i++) {

    if (array[i] > array2[i]) {
        array3[i] = array[i];
        continue;
    }
    else if (array[i] <= array2[i]) {
        array3[i] = array2[i];
        continue;
    }
}
for (int i = 0; i < n; i++)
    cout << array3[i] << "
 ";
delete[] array;
delete[] array2;
delete[] array3;
}

我没有修改你的代码但是:

  • 我认为你可以删除那个continue;,因为你有一个else子句代码不会进入另一个条件。
  • 我会删除第二个比较,因为如果它不是更大,则情况相同或更少,所以你可以只留下其他没有任何if。 if(array [i]> array2 [i]){array3 [i] = array [i]; } else {array3 [i] = array2 [i]; }
另一答案
int maxima(int i , int j)
{

      if(j > i)
           return j;
   return i;
}
int main()
{
   int n; //number of elements
cin >> n;
int* array = new int[n];
int* array2 = new int[n];
int* array3 = new int[n];
cout << "First array: " << "
";
for (int i = 0; i < n; i++)
    cin >> array[i];
cout << "Second array:" << "
";
for (int i = 0; i < n; i++)
    cin >> array2[i];
   for(int i = 0; i < n; i++)
          array3[i] = maxima(array[i], array2[i]);
delete[] array;
delete[] array2;
delete[] array3;
    return 0;
}

我希望这有帮助

以上是关于C ++比较2个数组中的整数?的主要内容,如果未能解决你的问题,请参考以下文章

C语言--用if语句比较三个数的大小

如何比较 2 个数组中的值以过滤掉元素

C语言中,怎么比较三个数的大小??

用辗转相除法求2个数的最大公约数,怎么做?

如何用C语言判断一个数是不是为递增数

C语言 判断一个数是不是是数组中的成员 用C语言编程