题目截图:
思路:
直接使用 C 语言内置的 qsort 函数,然后按要求输出即可。qsort 函数用法请查看另一篇博文。
代码如下:
1 /* 2 特殊排序 3 */ 4 5 #include <stdio.h> 6 #include <string.h> 7 #include <math.h> 8 #include <stdlib.h> 9 #include <time.h> 10 #include <stdbool.h> 11 12 int cmp(const void* a, const void* b) { 13 return *(int*)a - *(int*)b; 14 } 15 16 int main() { 17 int n, i; 18 int a[1001]={0}; 19 scanf("%d", &n); 20 for(i=0; i<n; ++i) { // 输入数组 21 scanf("%d", &a[i]); 22 } 23 if(n == 1) { // 特判(题目要求) 24 printf("%d -1", a[0]); 25 return 0; 26 } 27 qsort(a, n, sizeof(a[0]), cmp); // 快速排序 28 printf("%d ", a[n-1]); // 按题目要求输出 29 for(i=0; i<n-2; ++i) { 30 printf("%d ", a[i]); 31 } 32 printf("%d ", a[n-2]); 33 34 return 0; 35 }