PAT 1002 A+B for Polynomials

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
#define zero 0.000001
float sum[1001]; 
int getPloynomials()
{
	int n,index,max = -1;
	float num;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>index>>num;
		if(index>max) max = index; 
		sum[index] += num;
	}
	return max; //返回最大的次数
}
int main()
{
	int max1,max2,num=0,count=0;
	memset(sum,0,sizeof(sum));
	max1 = getPloynomials();
	max2 = getPloynomials();
	max1 = max(max1,max2);
	for(int i=0;i<=max1;i++)//得到总项数
	{
		if(fabs(sum[i])>zero) count++;
	}
	if(count==0) cout<<count;
	else cout<<count<<" "; 
	for(int i=max1;i>=0;i--)
	{
		if(fabs(sum[i])>zero)
		{
			cout<<i<<" ";
			num++;
			if(num!=count){
				printf("%.1f ",sum[i]);
			}
			else
			{
				printf("%.1f",sum[i]);
			}
		}
		
	}

}

控制输出小数点之后的位数: printf("%.1f",x)  1表示表示小数点之后一位

上一篇:1002.A + B Problem II --大数问题


下一篇:linux I/O内存访问