标题
数列折半交换
问题描述
对一个整数数列进行折半交换:
如果该数列有奇数个元素,则数列的中间元素不动,左半 边的元素整体移到右边,右半边的元素整体移到左边;如果该数列有偶数个元素,左、右 半边元素交换。
输入说明
输入数据分为两行。
第一行包含了一个整数n,表示数列元素数,1 ≤ n ≤ 30。 第二行是整数数列的n个元素,元素之间用空格隔开。
输出说明
输出折半交换后的整数序列。
输入样例1
5
1 2 1 4 3
输出样例1
4 3 1 1 2
输入样例2
4
5 7 6 8
输出样例2
6 8 5 7
#include<stdio.h>
#include<math.h>
int main(){int n,i,j,temp=0;scanf("%d",&n);int a[n];if(n>=1&&n<=30){for(i=0;i<n;i++){scanf("%d",&a[i]);}if(n%2!=0){int t=i/2;for(j=0;j<t;j++){int temp=a[j];a[j]=a[j+t+1];a[j+t+1]=temp;temp=0;}}else if(n%2==0){int p=n/2;for(j=0;j<p;j++){int temp=a[j];a[j]=a[j+p];a[j+p]=temp;temp=0;}}for(i=0;i<n;i++){printf("%d ",a[i]);}} return 0;
}