指针练习

按奇偶排序,偶的全在前,奇的全在后

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int n,a[50010],i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    int *pa,*pb;
    pa=&a[1];
    pb=&a[n];
    while(pa<pb)
    {
        if(*pa%2==0 && *pb%2==1)
        {
            pb--;
            pa++;
        }
        else if(*pa%2==0 && *pb%2==0)
        {
            pa++;
        }
        else if(*pa%2==1 && *pb%2==1)
        {
            pb--;
        }
        else if(*pa%2==1 && *pb%2==0)
        {
            swap(*pa,*pb);
            pb--;
            pa++;
        }
    }
    for(int i=1;i<=n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}

难写锤实了

posted @ 2021-12-02 17:32  fervency  阅读(24)  评论(0编辑  收藏  举报