题目1001:http://www.patest.cn/contests/pat-a-practise/1001
审题,然后对其进行框图书写
下面是代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define min -1000000
#define max 1000000
/**
输入:A B(空格隔开) -1000 000 <= a, b <= 1000000
输出:100,100,(每三位一个逗号隔开)
by Mr Pan
**/
int main()
{
int a,b,sum,temp1;
char s[7];
int i,j,n;
scanf("%d %d",&a,&b);
if( (a>=min) && (a<=max) && (b>=min) && (b<=max))
{
sum = a + b;
temp1=sum;
sum=abs(sum); //正数负数一律处理
n=0;
i=0;
if(sum==0)
printf("0"); //考虑到等于0的情况
while(sum!=0) //不等于0的情况
{
s[i]=sum%10;
n++;
i++;
sum=sum/10;
}
/**输出部分采用字符输出**/
j=n;
if(temp1<0)printf("-");
for(i=n-1;i>=0;i--)
{
printf("%d",s[i]);
j--;
if((j)%3==0&&j!=0)
printf(",");
}
printf("\n");
}
else
exit(0);
return 0;
}
</pre><pre name="code" class="cpp">
题目:http://www.patest.cn/contests/pat-a-practise/1002
</pre><pre name="code" class="cpp">#include <stdio.h>
#include <stdlib.h>
/**
1.输入存储操作
2.遍历操作并相加
3.整理数据输出
这里应用一个巧妙的思维方式解答
1,题目意思是多项式相加,多项式相加需要相同的项系数相加
2.那我就把这里的项抽象为数组的下标,系数抽象为数组一个项的值,即可对应项相加操作。
1<=k<=10
**/
#define N 1001
void Init_array(double *a,int n)
{
int i;
for(i=0;i<n;i++)
a[i]=0;
}
int main()
{
/**变量定义**/
double a[N];
int k,Ni;
double aNi;
int i;
int cnt;
Init_array(a,N);//初始化数组
scanf("%d",&k);
/**应用该抽象方式对数组进行赋值**/
for(i=0;i<k;i++)
{
scanf("%d",&Ni);
scanf("%lf",&aNi);
a[Ni]+=aNi;
}
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&Ni);
scanf("%lf",&aNi);
a[Ni]+=aNi;
}
cnt=0;
for(i=0;i<N;i++)
{
if(a[i]!=0)cnt++;
}
printf("%d",cnt);
for(i=N-1;i>=0;i--)
{
if(a[i]==0)continue;
printf(" %d %.1lf",i,a[i]);
}
printf("\n");
return 0;
}