所以我的任务是制作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: " << "\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
)。
我的错误在哪里?
答案 0 :(得分:1)
您正在显示array3
,但是您还没有向其中添加任何数据,您必须将数据分配给您的数组3我假设您在数组和数组2之间进行比较后得到更大的数据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子句,代码不会在其他条件下输入。我会删除第二个比较,因为如果它不大,则会有相同或更少的情况,所以你可以只留下其他没有任何if。
if(array [i]&gt; array2 [i]) { array3 [i] = array [i]; } 其他{ array3 [i] = array2 [i]; }
答案 1 :(得分:0)
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: " << "\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++)
array3[i] = maxima(array[i], array2[i]);
delete[] array;
delete[] array2;
delete[] array3;
return 0;
}
我希望这会有所帮助