1012 数字分类

题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840

题解:

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

int main(){
    int n;
    cin>>n;
    bool flag1=false,flag2=false,flag3=false,flag4=false,flag5=false;
    int *p=new int[n];
    for(int i=0;i<n;i++)
        cin>>p[i];
    int A1=0,A2=0,A3=0,A5=0;
    float A4=0.0;
    int *tempA5=new int[n],kA4=0,kA5=0,cnt=0;
    for(int i=0;i<n;i++){
        int select=p[i]%5+1;
        switch(select){
            case 1:
                if(p[i]%2==0){
                    A1+=p[i];
                    flag1=true;
                }
                break;
            case 2:
                if(cnt%2!=0) p[i]=-p[i];
                A2+=p[i];
                cnt++;
                flag2=true;
                break;
            case 3:
                A3++;
                flag3=true;
                break;
            case 4:
                A4+=p[i];
                kA4++;
                flag4=true;
                break;
            default:
                tempA5[kA5++]=p[i];
                flag5=true;
                break;
        }
    }
    A4=(float)A4/kA4;//容易错,用强制类型转换
    A5=tempA5[0];
    for(int i=0;i<kA5;i++){
        if(tempA5[i]>A5) A5=tempA5[i];
    }
    if(!flag1) cout<<'N'<<" ";
    else cout<<A1<<" ";
    if(!flag2) cout<<'N'<<" ";
    else cout<<A2<<" ";
    if(!flag3) cout<<'N'<<" ";
    else cout<<A3<<" ";
    if(!flag4) cout<<'N'<<" ";
    else cout<<setiosflags(ios::fixed)<<setprecision(1)<<A4<<" ";//不加setiosflags(ios::fixed)输出格式错误
    if(!flag5) cout<<'N';
    else cout<<A5;
    return 0;
}

 

上一篇:nmake编译C#源码


下一篇:学习python 第二天