已知一个长度为n的整数数组,在保证原顺序的前提下,将该数组中所有的偶数放到所有的奇数之前,存到一个新数组中,并将新数组输出。
输入格式:
共2行,第一行为一个整数n(0<n<=200),代表输入整数个数,第二行为n个用空格分隔的整数,需保存在待处理数组中。测试用例保证所有整数可以用int存储。
输出格式:
只有一行,为新数组中的元素,数与数之间用一个空格分隔,第n个数后是换行符。
输入样例:
10
3 9 4 5 8 7 10 2 6 1
输出样例:
4 8 10 2 6 3 9 5 7 1
代码实现:
#include <stdio.h>
int main()
{
int n,i,j=0;
scanf("%d",&n);
int itg[n],newarr[n]; //前者是输入的整数数组,后者用于存放换序后数组
for(i=0;i<n;i++)
{
scanf("%d",&itg[i]);
if(itg[i]%2==0)
{
newarr[j]=itg[i];
j++;
}
}
for(i=0;i<n;i++)
{
if(itg[i]%2==1)
{
newarr[j]=itg[i];
j++;
}
}
for(i=0;i<n-1;i++)
printf("%d ",newarr[i]);
printf("%d\n",newarr[i]);
return 0;
}
心得体会:输入的时候顺带着进行部分操作可以提升效率。