这个代码不知道为什么不行
#include<stdio.h>
#include<stdlib.h>
struct node
{
int x;
struct node *next;
}
main(){
struct node *h,*p1,*p2;
int i,n,a[10];
printf("请输入链表的长度:");
scanf("%d",&n);
printf("请输入链表的所有元素:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
p1=(struct node*)malloc(sizeof(struct node));
p1->x=a[i];
if(h=NULL)
h=p2=p1;
else if(p1->x%2==1)
{
p1->next=h;
h=p1;
}
else
p2->next=p1;
}
printf("构建完成");
p2->next=NULL;
p1=h;
for(i=0;i<n;i++)
{
printf("%d",p1->x);
p1=p1->next;
}
}