我是新來的C++,我有一個排序有rand()函數生成的隨機值的數組的問題。 數組長度爲100,數值由0到9的隨機數填充(0,1,2,3,4,5,6,7,8,9)。排序隨機值數組由數值遞增
我已經成功確定數組的值,但仍然失敗時,我想基於它的值遞增排序數組。由此,這意味着當我打印數組值時,它可能不會被它的索引排序,而是被它的值所排序。
像這樣:
X [10] = 0;
X [1] = 1;
X [60] = 2; ...等等直到X [99] = ...
這裏是確定值並對其進行排序的代碼,我在這裏有什麼錯誤?請幫助..
int length= 100;
X = new int[length];
int i;
int j;
int temp;
//determining the array value
for (i = 0; i < length; i++) {
X[i] = rand() % 10;
}
//sorting
for (i = 0; i < length; i++) {
for (j = 0; j < length; j++) {
if (X[i] < X[j]) {
temp = X[j];
X[j] = X[i];
X[i] = temp;
}
}
}
//print the array
for (i = 0; i < length; i++) {
cout << "X[" << i << "] = " << X[i] << "\n";
Sleep(10);
}
以上代碼將不打印排序按價值計算,其印刷而成的指數排序遞增的陣列,而不是由它就像我上面所說的要值。
請遞給我解決這個,
在此先感謝
如果這是一個任務或者有一個很好的理由讓你寫你自己的排序,你應該提到的是,在問題。否則,使用'std :: sort'。 – juanchopanza 2014-09-29 06:27:26
@juanchopanza它不是一個任務,它只是我想學習C++排序我的自我,但我得到了這個問題。我將對這個問題進行編輯 – codelop 2014-09-29 06:31:16
在開始排序之前,將值放入數組*中。 – molbdnilo 2014-09-29 06:33:53