数据结构-题目

把 奇数移到一起 偶数在一起
输入多个case
例如输入
8 1 2 3 4 5 6 7 8
5 1 2 3 4 5 
输出
1 3 5 7 2 4 6 8

1 3 5 2 4

#include <cstdio>
#include <cstdlib>

#define N 102

int a[N] ;

int main()
{
	freopen("in.txt" , "r" , stdin) ;
	int n ;
	int tmp ;	
	while(scanf("%d" , &n) != EOF)
	{
		int i ;
		for(int i = 1 ;i <= n ; i ++)
		{
			scanf("%d" , &a[i]) ;
		}
		int v = 1 ; // 块大小
		i = n ; // i 为尾部第一个奇数
		if(n % 2 == 0)
			i = n - 1 ; 
		while(i > 1 )
		{
			int tmp = a[i-1] ; // 紧挨着的偶数
			for(int j = 0 ; j < v ; j ++)
			{
				a[i - 1 + j] = a[i + j] ;
			}
			a[i - 1 + v] =  tmp ; 
			i = i - 2 ;
			v ++ ;
		}
		for(i = 1 ; i < n ; i ++)
		{
			printf("%d " , a[i]) ;
		}
		printf("%d\n" , a[n]) ;
	}
	return 0 ;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26437925/article/details/49925577
个人分类: C C++ 数据结构
上一篇1012. The Best Rank (25)
下一篇1022. Digital Library (30)
想对作者说点什么? 我来说一句

poj经典数据结构题目解题报告

2008年03月17日 314KB 下载

数据结构题目数据结构题目

2009年12月27日 3.12MB 下载

没有更多推荐了,返回首页

关闭
关闭