输入一个一维数组,用指针实现把奇数放前面,偶数放后面

题目是:

img

#include <stdio.h>

int pl(int a[])
{
    int *p,*q,t;
    p=&a[0];
    q=&a[9];
    while(p<q)
    {
        while(*p%2!=0)
        p++;
        while(*q%2==0)
        q--;
        if(p>q)
        break;
        t=*p;
        *p=*q;
        *q=t;
        p++;
        q--;
    }
}

int main()
{
    int a[10],i;
    for(i=0;i<=9;i++)
    {
        scanf("%d",&a[i]);
    }
    pl(a);
    for(i=0;1<=9;i++)
    {
        printf("%d",a[i]);
    }
}

img


发现输出的前十位数是对的,后面的是乱码
请问我的代码哪错了?

for(i=0;1<=9;i++)你这是1,不是i,ok?