PTA |1012数字分类 枚举

101 阅读1分钟

PTA |1012数字分类

这道题就是考察输入输出的,特别繁琐,需要耐住性子。

容易错的两个地方。格式:A[5]输出时不需要空格

在判断A[2]的时候不能凭借sum2是否等于0去判断是否输出'N',因为sum2可能进行+-操作,是有可能等于0的。

还有一个坑点就是如果max5初始化为-1就会有些样例通不过:

image.png

如果初始化为0就可以全部通过:

#include<iostream>
#include<vector>
using namespace std;

int main()
{
    int t;
    cin >> t;
    vector<int> v(t);
    int Max5 = 0;
    int flag2 = 1;
    int sum1 = 0, sum2 = 0;
    int count3 = 0, count4 = 0,count2=0;
    double avg4 = 0.0, sum4 = 0.0;

    for(int i = 0; i < t; i++)
    { 
        scanf("%d",&v[i]);
        // A1
        if(v[i]%5==0&&v[i]%2==0) sum1 += v[i];

        // A2
         if(v[i]%5==1){
        sum2+=v[i]*flag2;
        flag2=flag2*-1;
             count2++;
      }

        // A3
        if(v[i]%5==2) count3++;

        // A4
        if(v[i]%5==3)
        {
            sum4 += v[i];
            count4++;
        }

        // A5
        if(v[i]%5==4) Max5 = max(Max5, v[i]);
    }

    avg4 = sum4 / count4;
    if(sum1 == 0) printf("N ");
    else printf("%d ", sum1);
    if(count2 == 0) printf("N ");
    else printf("%d ", sum2);
    if(count3 == 0) printf("N ");
    else printf("%d ", count3);
    if(count4 == 0) printf("N ");
    else printf("%.1lf ", avg4);
    if(Max5 == 0) printf("N");
    else printf("%d", Max5);

    return 0;
}

image.png