我的程序必須對另一個數組中的數組進行排序。 當我運行該程序時,它打印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