问题遇到的现象和发生背景
没有输出
题目如下
设计函数求一元多项式的导数。
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
typedef struct S
{
int xi;
int zhi;
struct S *next;
}S,*list;
list createlist()
{
list L1=(list)malloc(sizeof(struct S));
L1->next=NULL;
list p,q;
q=L1;
int xi,zhi;
while(scanf("%d %d",&xi,&zhi)!=EOF)
{
p=(list)malloc(sizeof(struct S));
p->xi=xi;
p->zhi=zhi;
p->next=NULL;
q->next=p;
q=p;
}
return L1;
}
list qiudao(list L1)
{
list q=L1,L2,p;
L2=(list)malloc(sizeof(struct S));
L2->next=NULL;
p=L2;
while(q->next!=NULL)
{
if(q->next->zhi==0)
{
free(q->next);
}
if(q->next->zhi!=0)
{
q->next->xi=q->next->xi*q->next->zhi;
q->next->zhi=q->next->zhi-1;
p->next=q->next;
p=q;
}
q=q->next;
}
return L2;
}
list printlist(list L1)
{
list p=L1;
if(p->next==NULL)
{
printf("0 0");
return 0;
}
while(p->next!=NULL)
{
printf("%d %d " ,p->xi,p->zhi);
p=p->next;
}
}
int main()
{
list L1=createlist();
list L2=qiudao(L1);
printlist(L1);
return 0;
}
运行结果及报错内容
没有输出