我的程序必须对另一个数组中的数组进行排序。 当我运行该程序时,它打印1 2 3 -858993460 5 -858993460 7. 我无法理解错误在代码中的位置。将数组排序到另一个数组C++
#include <iostream>
using namespace std;
int main()
{
const int N = 7;
int arr[N] = { 3, 17, 2, 9, 1, 5, 7 };
int max = arr[0];
for (int i = 1; i < N; i++)
{
if (max < arr[i])
max = arr[i];
}
int sort_arr[N];
for (int j = 0; j < N; j++)
{
sort_arr[arr[j] - 1] = arr[j];
}
for (int i = 0; i < N; i++)
{
cout << sort_arr[i] << " ";
}
return 0;
}
你到底想干什么这行:'sort_arr [arr [j] - 1] = arr [j];'? – user2296177
当'J'为1时,这个表达式'arr [j] - 1'评估为'17-1',它超出了数组'arr'的范围' –
'sort_arr [arr [j] -1]数组的边界。 (当'j'是'1'时,arr [j]'是'17','arr [j] - 1'是'16' ...并且您在哪里对数组进行排序? – songyuanyao