答案
#include <stdio.h>
int main() {
static int N, a, b[5], flag = 0, c, flag1 = 0;
scanf("%d", &N);
for(int i = 0; i < N; i++) {
scanf("%d", &a);
if(a % 5 == 0) {
if(a % 2 == 0) {
b[0] += a;
}
} else if(a % 5 == 1) {
if(flag == 0) {
b[1] += a;
flag = 1;
} else {
b[1] -= a;
flag = 0;
}
flag1 = 1;
} else if(a % 5 == 2) {
b[2]++;
} else if(a % 5 == 3) {
b[3] += a;
c++;
} else if(a % 5 == 4) {
if(b[4] < a) {
b[4] = a;
}
}
}
for(int i = 0; i < 5; i++) {
if(i == 0) {
if(b[i] != 0) {
printf("%d", b[i]);
} else {
printf("N");
}
} else if(i == 1) {
if(flag1 == 1) {
printf(" %d", b[i]);
} else {
printf(" N");
}
} else {
if(b[i] != 0) {
if(i == 3) {
printf(" %.1f", 1.0*b[3]/c);
} else {
printf(" %d", b[i]);
}
} else {
printf(" N");
}
}
}
}
感想
我当时由于忽略了A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和的部分会因为一些原因导致A2 = 0,所以导致不可通过检测点8——至于,这个原因,就是A2自己在运算中把自己变成0。
感谢程序员王同学的文章