算法练习-day10 奇偶数分离

63 阅读1分钟

题目

有一个整形偶数n(2<=n<=100000),你要做的是:先把1到n的所有奇数从小到大输出,再把所有的偶数从小到大输出。

  • 输出: 第一行一行整数i(2<=i<=30)表示有i组测试数据;每组有一个整形偶数n。
  • 输入:第一行输出所有的奇数。第二行输出所得偶数。

思路

先用for循环遍历2到n的所有数,将奇数,偶数分离出来。再在外面套一个for循环用来表示有i组数据。

算法实现

#include <stdio.h>
int main()
{
	int j;
	scanf("%d",&j);//用来接收i,表示有几行数据
	
	for(int a=0;a<j;a++){
	
	
		int n;
		scanf("%d",&n);
                //分离奇偶数并从小到大排序
		for(int i=2;i<=n;i++){
			if(i%2==0)
			{
				printf(" %d",i);
			}
		}
		printf("\n");
		for(int i=2;i<=n;i++){
			if(i%2==1)
			{
				printf(" %d",i);
			}
		}
		printf("\n");
}
	
	return 0;
 } 

示例

image.png

总结

此题运用两次循环就能解决;思路清晰,把问题分解为两步完成即可。