pat甲组练习题 1002数组实现 C语言

题目对于我这种刚入门的新手来说自然是很难,看到这么长的题目我啪的一下就去找翻译了,很快啊。但是题目说我这个也没用。确实,全文有两个单词比较难懂:exponents and coefficients,意思是指数和系数。
Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output

3 2 1.5 1 2.9 0 3.2

这是输出给的样例,相当于给的是

输入1:两个数: 2.4·x1+3.2·x0
输入2:两个数: 1.5·x2+0.5·x1
输出相当于把输入1和输入2加起来:三个数:1.5·x2+2.9·x1+3.2·x0

比较坑的点:注意输出的末尾不能有空格

好了基本逻辑讲清楚了上代码

#include <stdio.h>
int main()
{
	int i,k,j;
	float s;
	float a[1001];
	for(i=0;i<1001;i++)
		a[i]=0.0;
	scanf("%d",&k);
	for(j=0;j<k;j++)
	{
		scanf("%d%f",&i,&s);
		a[i]+=s;
	}
	scanf("%d",&k);
	for(j=0;j<k;j++)
	{
		scanf("%d%f",&i,&s);
		a[i]+=s;
	}
	k=0;
	for(i=0;i<1001;i++)
	{
		if(a[i])
		   k++;
	}
	printf("%d",k);
	if(k)
		printf(" ");
	for(i=1000;i>=0;i--)
	{	
		if(a[i])
		{
			printf("%d %.1f",i,a[i]);
			k--;
			if(k)
				printf(" ");
		}
	}
	return 0;
}

更多推荐

pat甲组练习题 1002数组实现 C语言