PAT 1001 1002

来源:互联网 发布:打卡是什么意思网络 编辑:程序博客网 时间:2024/06/06 06:39
题目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 1001void 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;}

0 0
原创粉丝点击