gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:43:42 31 4
gpt4 key购买 nike

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

这是我的程序:

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: " << "\n";
for (int i = 0; i < n; i++) {
cin >> array[i];
}

cout << "Second array:" << "\n";
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] << "\n ";
}
delete[] array;
delete[] array2;
delete[] array3;
}

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

我的错误在哪里?

最佳答案

你正在显示你的 array3 但你没有向它添加任何数据,你必须将数据分配给你的 array3 我想在你对 array 和 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: " << "\n";
for (int i = 0; i < n; i++)
cin >> array[i];
cout << "Second array:" << "\n";
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] << "\n ";
delete[] array;
delete[] array2;
delete[] array3;
}

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

  • 我认为您可以删除 continue;,因为您有一个 else 子句,代码将不会进入其他条件。
  • 我会删除第二个比较,因为如果它不是更大,则存在相等或更小的情况,所以您可以只留下 else 而没有任何 if。

    如果(数组[i] > 数组2[i]){ array3[i] = array[i];}别的{ array3[i] = array2[i];

关于C++ 比较两个数组中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49706809/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com