码迷,mamicode.com
首页 > 其他好文 > 详细

1012. 数字分类

时间:2015-01-20 18:00:52      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:c++   pat   

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:

  • A1 = 能被5整除的数字中所有偶数的和;
  • A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
  • A3 = 被5除后余2的数字的个数;
  • A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
  • A5 = 被5除后余4的数字中最大数字。

    输入格式:

    每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。

    输出格式:

    对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

    若其中某一类数字不存在,则在相应位置输出“N”。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main ()
    {
        int num,i,temp,count0=0,count1=0,count2=0,count3=0,count4=0;
        scanf("%d",&num);
        int * mode0=new int[num];
        int * mode1=new int[num];
        int * mode2=new int[num];
        int * mode3=new int[num];
        int * mode4=new int[num];
        for(i=0;i<num;i++)
        {
                          scanf("%d",&temp);//the current num
                          switch (temp%5)//the mode num
                          {
                                 case 0:mode0[count0++]=temp;break;
                                 case 1:mode1[count1++]=temp;break;
                                 case 2:mode2[count2++]=temp;break;
                                 case 3:mode3[count3++]=temp;break;
                                 case 4:mode4[count4++]=temp;break;
                                 }
                          }
        int result0=0,result1=0,result2=0,result4=0;
        float result3=0.0f;
    //    bool flag0,flag1,flag2,flag3,flag4;
        //A1//////////////////////////////
        if(count0==0) printf("N ");//no num in mode0
        else 
        {
             for(i=0;i<count0;i++)
                 if(mode0[i]%2==0) result0=result0+mode0[i];
             if(result0==0) printf("N ");
             else printf("%d ",result0);
             }
        //A2/////////////////////////////////
        if(count1==0) printf("N ");
        else
        {
            for(i=0;i<count1;i++)
            {
                if(i%2==0) result1=result1+mode1[i];
                else result1=result1-mode1[i];
                }
            printf("%d ",result1);
            }
        //A3///////////////////////////////////
        if(count2==0) printf("N ");
        else
        printf("%d ",count2);
        //A4///////////////////////////////////
        if(count3==0) printf("N ");
        else
        {
            for(i=0;i<count3;i++) result3=result3+mode3[i];
            result3=result3/count3;
            printf("%.1f ",result3);
            }
        //A5//////////////////////////////////////
        if(count4==0) printf("N");
        else
        {
            result4=mode4[0];
            for(i=1;i<count4;i++)
                if(mode4[i]>result4) result4=mode4[i];
            printf("%d\n",result4);
            }
            system("pause");
       return 0;
        }
    

  • 1012. 数字分类

    标签:c++   pat   

    原文地址:http://blog.csdn.net/lchinam/article/details/42920649

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!