小明所在的合唱队共有N 个人(N为奇数)。为了准备一次演出,老师开始为他们安排合唱队形了。 大家都知道,合唱队形通常是中间高两端低的。老师是这样安排他们的队形的:先让所有的同学按高个儿在前的顺序排成一队。然后,最高的那位同学单独站出来, 这是合唱队形的中心,再让第二位同学站在他的右手边,让第三位同学站在他的左手边,再依次向两端安排其他人…… 事先给定所有人的身高,请输出他们站成合唱队形之后的身高顺序。输入有两行。第1行是一个正整数N(N<1000),表示合唱队的总人数,已知N为奇数。第2行是N 个整数,表示以厘米为单位的所有人的身高。输出仅一行。N个整数,表示他们按老师的要求站成合唱队形之后的身高顺序。用c语言写出来
时间: 2024-04-10 16:28:01 浏览: 182
C语言编程个人真情奉献答案.doc
以下是使用 C 语言编写的程序,用于按照老师的要求安排合唱队形后的身高顺序:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int N;
printf("请输入合唱队的总人数(奇数):");
scanf("%d", &N);
int heights[N];
printf("请输入每个人的身高(以厘米为单位):");
for (int i = 0; i < N; i++) {
scanf("%d", &heights[i]);
}
// 按照身高排序
bubbleSort(heights, N);
int result[N];
int mid = N / 2; // 合唱队形的中心位置
// 构建合唱队形
int left = mid - 1;
int right = mid + 1;
result[mid] = heights[0]; // 最高的同学单独站出来
for (int i = 1; i < N; i++) {
if (i % 2 == 1) {
result[left--] = heights[i];
} else {
result[right++] = heights[i];
}
}
// 输出结果
printf("按照合唱队形安排后的身高顺序为:");
for (int i = 0; i < N; i++) {
printf("%d ", result[i]);
}
printf("\n");
return 0;
}
```
运行该程序,按照提示输入合唱队的总人数和每个人的身高后,将输出按照合唱队形安排后的身高顺序。
阅读全文