02-2. 一元多项式求导 (25)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
设计函数求一元多项式的导数。
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:3 4 -5 2 6 1 -2 0输出样例:
12 3 -10 1 6 0
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define LEN sizeof(struct Duoxiangshi)
struct Duoxiangshi
{
int coef;//系数
int expon;//指数
struct Duoxiangshi *next;
};
struct Duoxiangshi *creat()//输入
{
struct Duoxiangshi *head;
struct Duoxiangshi *p1,*p2;
p1=p2=(struct Duoxiangshi *)malloc(LEN);
scanf("%d%d",&p1->coef,&p1->expon);
head=p1;
while(p1->expon!=0)
{
p2->next=p1;
p2=p1;
p1=(struct Duoxiangshi *)malloc(LEN);
scanf("%d%d",&p1->coef,&p1->expon);
}
p2->next=NULL;
return (head);
}
void print(struct Duoxiangshi *head)//输出
{
struct Duoxiangshi *p;
p=head;
int i=0;
while(p)
{
if(!i)i=1;
else printf(" ");
p->coef*=p->expon;
p->expon--;
if(p->expon<0)
p->expon=0;
printf("%d %d",p->coef,p->expon);
p=p->next;
}
printf("\n");
}
int main()
{
struct Duoxiangshi *head;
head=creat();
print(head);
return 0;
}
能过,但是有点小问题