把长度为9的数组a中最小值放在元素a[0]、最大值放在元素a[1],次小值放在a[2],次大值放在a[3],以此类推。。。
我想了很久。。

程序代码:#include <stdio.h>
#define SIZE 9
void sort(int *, int);
void display(int *, int);
void swap(int *, int *);
int main(void) {
int arr1[SIZE] = { 4, -1, 2, 8, 9, 5, 38, 47, 53 };
int arr2[SIZE], i, j;
sort(arr1, SIZE);
for(i = SIZE - 1, j = 1; i > SIZE / 2; i--, j += 2) {
arr2[j] = arr1[i];
}
for(i = 0, j = 0; i < SIZE / 2 + 1; i++, j += 2) {
arr2[j] = arr1[i];
}
display(arr2, SIZE);
return 0;
}
void sort(int * arr, int size) {
int i, j, k;
for(i = 0; i < size - 1; i++) {
k = i;
for(j = i + 1; j < size; j++) {
if(arr[j] < arr[k]) {
k = j;
}
}
if(k != i) {
swap(arr + i, arr + k);
}
}
}
void display(int * arr, int size) {
int i;
for(i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
puts("");
}
void swap(int * p1, int * p2) {
*p1 ^= *p2;
*p2 ^= *p1;
*p1 ^= *p2;
}
运行结果: