题解 | 排序
排序
https://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_LENGTH (1000)
int compare_asc (const void* a, const void*b) {
return (*(int*)a - *(int*)b);
}
int compare_desc (const void* a, const void*b) {
return (*(int*)b - *(int*)a);
}
int main() {
int length;
scanf("%d", &length);
int buffer[length];
for (int i=0; i<length; i++) {
scanf("%d", buffer+i);
}
int order;
scanf("%d", &order);
if (order == 0) {
qsort(buffer, length, sizeof(int), compare_asc);
} else if (order == 1) {
qsort(buffer, length, sizeof(int), compare_desc);
}
for (int i=0; i<length; i++) {
printf("%d", buffer[i]);
if (i == length-1) {
printf("\n");
} else {
printf(" ");
}
}
return 0;
}