1012 数字分类 (20分)

1012 数字分类 (20分)
 

给定一系列正整数,请按要求对数字进行分类,并输出以下 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

输入样例 1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18
 

输出样例 1:

30 11 2 9.7 9
 

输入样例 2:

8 1 2 4 5 6 7 9 16
 

输出样例 2:

N 11 2 N 9

本题注意分类就好。


#include<stdio.h>
int main()
{
 int a1=0,a2=0,a5=0;
 int count[6]={0};
 double a4=0;
 int n;
 scanf("%d",&n);
 int num;
 int flag=1;
 while(n--)
 {
  scanf("%d",&num);
  if(num%5==0&&num%2==0)
  {
   count[1]++;
   a1+=num;
   
  }
  if(num%5==1)
  {
   count[2]++;
   a2+=flag*num;
   flag=-flag;
  }
  if(num%5==2)
  {
   count[3]++;
  }
  if(num%5==3)
  {
   count[4]++;
   a4+=num;
  }
  if(num%5==4&&num>a5)
  {
   count[5]++;
   a5=num;
  }
  }
  if(count[1])
  printf("%d",a1);
  else
  printf("N");
  int i;
     for(i=2;i<=5;i++)
     {
      if(count[i]==0)
      {
       printf(" N");
       continue;
   }
   else
   switch(i)
   {
    case 2: printf(" %d",a2);break;
   case 3: printf(" %d",count[3]);break;
   case 4: printf(" %.1f",a4*1.0/count[4]);break;
   case 5: printf(" %d\n",a5);break;
    
   }
  }
 return 0;
}


posted @ 2020-10-25 19:32  罪梦者  阅读(150)  评论(0)    收藏  举报