拼题--一元多项式求导 (20 分)

7-16 一元多项式求导 (20 分)

设计函数求一元多项式的导数。

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
#include<stdio.h>
#define N 1000
struct PolyNode
{
	int coef;
	int ex;
}p[N];
int main()
{
	char  c;
	int size=0,i,c1,e1;
	int cnt=0; //用来标记输出的次数 
	scanf("%d %d",&p[0].coef,&p[0].ex);
	size++;
	while((c=getchar())!='\n')
	{
		scanf("%d %d",&c1,&e1);
		for(i=0;i<size;i++)
		{
			if(e1==p[i].ex)
			{
				p[i].coef=c1;
				break;
			}
		}
		if(i==size)
		{
			p[size].coef=c1;
			p[size].ex=e1;
			size++;
		}
	}
	for(i=0;i<size;i++)
	{
		p[i].coef=p[i].coef*p[i].ex;
		p[i].ex-=1;
	}
	for(i=0;i<size;i++)
	{
		if(cnt==0&&p[i].coef!=0)
		{
			printf("%d %d",p[i].coef,p[i].ex);
			cnt++;
		}
		else if(cnt!=0&&p[i].coef!=0)
		{
			printf(" %d %d",p[i].coef,p[i].ex);
			cnt++;
		}
	}
	if(cnt==0)
	{
		printf("0 0");
	}
	
}

猜你喜欢

转载自blog.csdn.net/a13683857889/article/details/88391293
今日推荐