您的位置:首页 > 其它

pat 甲级1009.Product of Polynomials (25)(c 语言实现)

2018-03-23 19:37 429 查看
#include<stdio.h>
#include<stdlib.h>
#define MAXN 1005
typedef struct m
{
int k;
float kn;
}num;
int cmp(const void*a,const void*b)
{
num s1=*(num*)a;
num s2=*(num*)b;
return s2.k-s1.k;
}
main()
{
int n,m,z;
num a[MAXN],b[MAXN],c[MAXN];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %f",&a[i].k,&a[i].kn);
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%d %f",&b[i].k,&b[i].kn);
}
int count=0,flag,l=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
flag =0;
for(z=0;z<count;z++)
{
if((a[i].k+b[j].k)==c[z].k)
{c[z].kn+=a[i].kn*b[j].kn;
if(c[z].kn==0.0){//测试点1wa 忘了可能系数为0,补救一下
c[z].k=-1;  //纯粹不想用数组重写
l++;
}
flag=1;}
}
if(!flag)
{
c[count].k=a[i].k+b[j].k;
c[count].kn=a[i].kn*b[j].kn;
count++;
}

}
}
qsort(c,count,sizeof(num),cmp);
printf("%d",count-l);
for(int i=0;i<count;i++)
{
if(c[i].k>=0)
printf(" %d %.1f",c[i].k,c[i].kn);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: