题目链接: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;
}