0
我試圖代碼的選擇排序算法操縱陣列(需要隨機的一組十個數字,輸入的由用戶,並以升序輸出該列表)。我理解算法如何工作,並認爲我已經想通了的事,但在for循環不工作,我期待的方式,我不能爲我的生活弄清楚它是什麼。在C++ for循環
這裏是我遇到的問題的一個例子: 輸入{9,8,7,6,5,4,3,2,1,0},輸出{0,1,2,3, 4,9,6,7,8,9}
無論我輸入什麼數字,第五個索引似乎總是關閉。但是,如果原始數字集具有任意給定數字的倍數,那麼將會有是其他更難以查明的錯誤。我希望解決的第五個問題指數後,其他問題也就迎刃而解了,或者至少更容易查明。
下面是那麼我的主要功能(減去它實際上是說主要的部分)的全部。
int arr[10];//array of integers input by user
int num; //smallest number in array
int temp; //temp variable for swapping numbers
int ind; //index of where temp was found
cout << "Enter ten random integers: " << endl;
for(int i=0; i<10; i++)
{
cout << "[" << i << "] = ";
cin >> arr[i];
}
cout << endl;
for (int j=0; j<10; j++)
{
num = arr[j];
temp = arr[j];
for (int k=j; k<10; k++) /*after this loop, temp should have lowest int and ind
should have its location*/
{
if(temp > arr[k])
{
temp = arr[k];
ind = k;
}
}
arr[j] = temp;
arr[ind] = num;
}
for(int l = 0; l<10; l++)
{
cout << arr[l] << " ";
}
我顯然試圖過於複雜的問題。謝謝,這幫了很多。 – Vorondil