1. 程式人生 > >找出一個數組中只出現一次的兩個數

找出一個數組中只出現一次的兩個數

//將這組資料進行排序之後相鄰兩個數進行比較,不相同則這個數只出現了一次 void sort(int arr[], int n) { int i, j; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) if (arr[j]>arr[j + 1]) { int tmp; tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } }

void func(int arr[], int n, int *num1, int *num2) { int tmp = 0; for (int i = 0; i < n; i += 2) { if (arr[i] == arr[i + 1]) continue; else { if (tmp == 0) { *num1 = arr[i]; i = i + 1; } else if (tmp == 1) { *num2 = arr[i]; i = i + 1; } tmp++; } } }

int main() { int a[10] = { 1, 4, 5, 8, 56, 4, 8, 5, 7, 1 }; //56 7 sort(a, 10); int num1, num2; for (int i = 0; i < 10; i++) { printf("%d “, a[i]); } printf(”\n"); func(a, 10, &num1, &num2); printf(“兩個只出現一次的數是%d和%d\n”, num1, num2); //system(“pause”); return 0; }