7-2 一元多项式的乘法与加法运算 (20分)
设计函数分别求两个一元多项式的乘积与和。

输入格式:
输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:
输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。

输入样例:
4 3 4 -5 2 6 1 -2 0
3 5 20 -7 4 3 1

输出样例:
15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0

#include<stdio.h>
#define N 10000 //指数不超过1000的整数 这里是10000更香 
int main()
{
   
	int a[N]={
   0};//第一个式子 
	int b[N]={
   0};//第二个式子 
	int c[N]={
   0};//求乘 
	int d[N]={
   0};//求和 
	int n,con,index;//con 系数 index 指数 
	//第一个式子
	scanf("%d",&n);
	while(n--)
	{
   
		scanf("%d %d",&con,&index);
		a[index]+=con;
	}
	//第二个式子
	scanf("%d",&n);
	while(n--)
	{
   
		scanf("%d %d",&con,&index);
		b[index]+=con;
	}
	//求乘 
	//注意防止0的乘法 增添if语句 若是0不进行 
	for(int i=0;i<N-1;i++)
	{
   
		if(a[i]) 
		{
   
			for(int j=0;j<N-1;j++)
			{
   
				if(b[j])
				{
   
					c[i+j]+=a[i]*b[j];
				}
			}
		}
	}
	//第一行 
	int cnt=0;
	for(int i=N-1;i>=0;i--) //递减输出 
	{
   
		if(c[i])
		{
   
		if(cnt++) printf(" ");
		printf("%d %d",c[i],i);
		}
	}
	if(!cnt) printf("0 0");//特殊例子 
	for(int i=0;i<N-1;i++)
	{
   
		if(a[i])
		d[i]+=a[i];
	}
	for(int i=0;i<N-1;i++)
	{
   
		if(b[i])
		d[i]+=b[i];
	}
	puts("");//注意换行! 第二行 
	cnt=0;
	for(int i=N-1;i>=0;i--)//递减输出
	{
   
		if(d[i])
		{
   
		if(cnt++) printf(" ");
		printf("%d %d",d[i],i);
		}
		
	}
	if(!cnt) printf("0 0");//特殊例子 
	return 0;
}```