给定一个长度为n(1<=n<=200)的数列,将这个数列按如下规则排列。 最小数,最大数,次小数,次大数,......
时间: 2024-02-15 19:02:16 浏览: 96
你可以使用数组和循环来解决这个问题。以下是一个示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 200
int main() {
int nums[MAX_SIZE], n, i, j, temp;
// 读取数列
printf("请输入数列长度(1 <= n <= 200):\n");
scanf("%d", &n);
printf("请输入 %d 个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
// 输出排序后的结果
printf("按照规则排序后:\n");
for (i = 0, j = n-1; i <= j; i++, j--) {
if (i == j) {
printf("%d ", nums[i]);
} else {
printf("%d %d ", nums[i], nums[j]);
}
}
printf("\n");
return 0;
}
```
该程序要求用户输入数列长度和数列元素,然后使用冒泡排序算法将它们按照从小到大的顺序排列,最后按照规则输出排序后的结果。可以根据需要修改 MAX_SIZE 常量来适应不同大小的输入。
阅读全文