题目描述
给定n(n是偶数,且n≤100)个正整数,所有正整数均≤10000;从前往后依次遍历这个数组,每两个为一组进行处理,若一组中的两个元素恰好一个为奇数,一个为偶数,则交换这两个元素的位置;否则不动;全部处理完成后,逆序输出整个数组。
例如给定序列: 62 12 25 55 , 处理完成后得到:55 25 12 62
输入格式
输入为两行。第一行是一个正整数n,表示有多少个数据。第二行是n个正整数组成的序列。
输出格式
输出一行n个正整数,是上述序列处理之后的结果。
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int n;
scanf("%d",&n);
int a[100];
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
} //将输入数据存入数组
for(i=0;i<n;i++)
{
if((i+1)%2==0) //得到每两个数
{
if((a[i]%2==0&&a[i-1]%2!=0)||(a[i]%2!=0&&a[i-1]%2==0)) //满足条件
{
int t=a[i-1];
a[i-1]=a[i];
a[i]=t; //将两数对换
}
}
}
for(i=n-1;i>=0;i--)
{
printf("%d ",a[i]);
} //数组逆序输出
return 0;
}