关闭

数据结构-题目

145人阅读 评论(0) 收藏 举报
分类:
把 奇数移到一起 偶数在一起
输入多个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 ;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:167401次
    • 积分:5488
    • 等级:
    • 排名:第4851名
    • 原创:382篇
    • 转载:105篇
    • 译文:0篇
    • 评论:23条
    博客专栏
    持续学习中
    最新评论