c'x'x0030错误求解答在线等
#include<stdio.h>
#include<malloc.h>
//**************创建结构体*************************
typedef struct Node
{
	float a;         //系数
	int b;           //指数
	struct Node *next;//指针域
}*No,Node;			 // No为指针类型	
//**************构造多项式*************************
void Insert(No p,No h)
{
	No q1,q2;
	if(p->a==0)
		free(p);
	else
	{
		q1=h;
		q2=h->next;
		while(q2&&p->b<q2->b)
		{
			q1=q2;
			q2=q2->next;
		}
			if(q2&&p->b==q2->b)
			{
				q2->b=q2->b+p->b;
			    free(p);
				if(q2->a==0)
				{
					q1->next=q2->next;
				    free(q2);
				}
			}
				else
				{
					p->next=q2->next;
					q1->next=p;
				}
			}
}//多项式构造函数
No ConstructNode(No head,int d)
{
	int i;
	No p;
	p=(No)malloc(sizeof(struct Node));
	p=head;
	head->next=NULL;//
显示在这出错
	for(i=0;i<d;i++)
	{
		p=(No)malloc(sizeof(struct Node));
		printf("请输入第%d项的系数和指数",i+1);
		scanf("%f %d",&p->a,&p->b);//获得数据
		Insert(p,head);//调用函数
	}
	return head;
}
//****************输出多项式***********************
	void PrintfNode(No p)
	{
		No q;
		q=p->next;
		int flag=1;     //项数计数
		if(!q)
		{
			putchar('0');
			printf("\n");
		}
		while(q)
		{
			if(q->a>0&&flag!=1)putchar('+');
			if(q->a==1)
			{
				if(q->b==0)putchar('1');
				else if(q->b==1)putchar('X');
				else printf("X^%d",q->b);
			}
			else
			{
				if(q->a==-1)
				{
					if(q->b==0)putchar('-1');
					else if(q->b==1)putchar('-X');
					else printf("-X^%d",q->b);
				}
				else
				{
					if(q->b==0)printf("%f",q->a);
					else if(q->b==1)printf("%fX",q->a);
					else printf("%fX^%d",q->a,q->b);
				}
				q=q->next;
				flag++;
			}
		}
		printf("\n");
	}//输出
//******************情况分析**************************
	int compare(No pa,No pb)
	{
		if(pa&&pb)
		{
			if(!pb||pa->b>pb->b)return 1;
				else if(!pa||pa->b<pb->b)return -1;
				else return 0;