xdoj 数列折半交换

标题

数列折半交换

问题描述

对一个整数数列进行折半交换:

如果该数列有奇数个元素,则数列的中间元素不动,左半 边的元素整体移到右边,右半边的元素整体移到左边;如果该数列有偶数个元素,左、右 半边元素交换。

输入说明

输入数据分为两行。

第一行包含了一个整数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

cpp 复制代码
#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;
}
相关推荐
Maỿbe21 分钟前
力扣hot图论部分
算法·leetcode·图论
LYFlied29 分钟前
【每日算法】LeetCode 78. 子集
数据结构·算法·leetcode·面试·职场和发展
月明长歌34 分钟前
【码道初阶】【Leetcode606】二叉树转字符串:前序遍历 + 括号精简规则,一次递归搞定
java·数据结构·算法·leetcode·二叉树
子枫秋月34 分钟前
C++字符串操作与迭代器解析
数据结构·算法
鹿角片ljp35 分钟前
力扣234.回文链表-反转后半链表
算法·leetcode·链表
(●—●)橘子……36 分钟前
记力扣1471.数组中的k个最强值 练习理解
数据结构·python·学习·算法·leetcode
oioihoii38 分钟前
C++共享内存小白入门指南
java·c++·算法
Bruce_kaizy40 分钟前
c++图论————图的基本与遍历
c++·算法·图论
l1t44 分钟前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
亭上秋和景清1 小时前
strlen;strcpy ;strcat
算法