题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <stdio.h> #include<stdlib.h> void exchange(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int quick(int *n, int l, int r) { int temp = n[r]; int i = l - 1; for(int j = l; j < r; j++) { if(n[j] <= temp) { i++; exchange(&n[i], &n[j]); } } exchange(&n[i + 1], &n[r]); return i + 1; } void quicksort(int *n, int l, int r) { if(l >= r) { return; } int q = quick(n, l, r); quicksort(n, l, q - 1); quicksort(n, q + 1, r); } int main() { int num; scanf("%d", &num); int *n = (int *)malloc(num * sizeof(int)); for(int i = 0; i < num; i++) { scanf("%d", &n[i]); } quicksort(n, 0, num - 1); for(int i = 0; i < num - 1; i++) { printf("%d\n", n[i]); while(n[i + 1] == n[i]) { i++; } } if(n[num - 2] != n[num - 1]) { printf("%d\n", n[num - 1]); } return 0; }