void sort_int_array(int A[], int n) {
int i, j, h, k, O[n];
/* assume that A[0] to A[n-1] have valid values */
for (i=1; i<n; i++) {
/* swap A[i] left into correct position */
for (j=i-1; j>=0 && A[j+1] <= A[j]; j--) {
int_swap(&A[j], &A[j+1]);
for (k=0; k<n; k++) {
for (h = 0; h < k; h++) {
if (A[k] == O[h]) {
break;
}
else {
O[k] = A[k];
}
}
}
}
}
}
我試圖只從有序數組寫入不同的值到另一個數組。該函數的第一部分對數組進行排序,但是當我將它寫入到新數組時,它會返回排序數組並且不會刪除副本。只寫一個不同的值到一個數組
例如。輸入:4 5 6 7 6 5 4.
輸出:4 4 5 5 6 6 7.
輸出想要的東西:4 5 6 7
希望這是你有幫助 http://stackoverflow.com/questions/2826233/removing-duplicates-in-an-array-in-c –
嘗試做排序和過濾分開,否則你的代碼變得很麻煩 –
執行第一和第二for循環之外的第三和第四循環,應該做的工作。 – 0decimal0