C++实现两数组对应位置整数比较并生成较大值第三数组
嘿,你已经搭好了这个程序的基础框架,我来帮你补全并优化它,让它完整实现需求~
完整的C++程序实现
#include <iostream> using namespace std; int main() { int n; // number of elements cout << "Enter the number of elements: "; cin >> n; // Dynamically allocate memory for three arrays int* array = new int[n]; int* array2 = new int[n]; int* array3 = new int[n]; // Input first array cout << "First array: " << "\n"; for (int i = 0; i < n; i++) { cin >> array[i]; } // Input second array cout << "Second array:" << "\n"; for (int i = 0; i < n; i++) { cin >> array2[i]; } // Compare elements and store larger values in third array for (int i = 0; i < n; i++) { // 用三元运算符简洁实现比较 array3[i] = (array[i] > array2[i]) ? array[i] : array2[i]; // 如果你更喜欢if-else,也可以用下面这段代码替换上面一行: // if (array[i] > array2[i]) { // array3[i] = array[i]; // } else { // array3[i] = array2[i]; // } } // Output the third array cout << "\nThird array (largest values from corresponding positions):" << "\n"; for (int i = 0; i < n; i++) { cout << array3[i] << " "; } cout << endl; // 释放动态分配的内存,避免内存泄漏 delete[] array; delete[] array2; delete[] array3; return 0; }
关键细节解释
- 动态内存分配:使用
new int[n]为数组分配内存,这样可以根据用户输入的元素数量n灵活创建数组,而不是固定大小的静态数组,适配更多场景。 - 元素比较逻辑:三元运算符
(condition) ? val1 : val2是一种简洁的条件判断写法,和if-else功能完全一致,你可以根据自己的阅读习惯选择使用哪一种。 - 内存释放:动态分配的内存必须用
delete[]释放(注意是带方括号的delete[],因为是数组类型),如果忘记释放会导致内存泄漏,长时间运行可能影响程序性能。 - 交互优化:添加了提示用户输入元素数量的语句,让程序的操作流程更清晰,用户体验更好。
内容的提问来源于stack exchange,提问作者Radoslav Pavlov
相关产品推荐
相关产品推荐

