这道题就是考察输入输出的,特别繁琐,需要耐住性子。
容易错的两个地方。格式:A[5]输出时不需要空格
在判断A[2]的时候不能凭借sum2是否等于0去判断是否输出'N',因为sum2可能进行+-操作,是有可能等于0的。
还有一个坑点就是如果max5初始化为-1就会有些样例通不过:
如果初始化为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;
}