这个题有个坑,可能导致最后一个测试不通过:a2可能因为加减变成了0,但并不是没有满足a2要求的数字,所以当a2为0有两种情况,一直是没有数字,一直是加减正好为0,所以加一个计数器flag1,下面是完整的代码
#include<iostream>
using namespace std;
int main() {
int n, a[1000], a1 = 0, a2 = 0, a3 = 0, a5 = 0, k = 1, flag1 = 0, flag2 = 0;
double a4 = 0.0;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
if (a[i] % 10 == 0) {
a1 = a1 + a[i];
}
if (a[i] % 5 == 1) {
a2 = a2 + k*a[i];
k = -k;
flag1++;
}
if (a[i] % 5 == 2) {
a3++;
}
if (a[i] % 5 == 3) {
flag2++;
a4 = a4 + a[i];
}
if (a[i] % 5 == 4) {
if (a[i] >= a5) {
a5 = a[i];
}
}
}
if(a1 == 0)cout << "N" << " ";
else cout << a1 << " ";
if (flag1 == 0)cout << "N" << " ";
else cout << a2 << " ";
if (a3 == 0)cout << "N" << " ";
else cout << a3 << " ";
if (a4 == 0.0) cout << "N" << " ";
else printf("%.1f ", a4/flag2 );
if (a5 == 0)cout << "N" ;
else cout << a5 << endl;
return 0;
}