不要小瞧这道题,这道题虽然不是那种思路型难题,但是测试点,以及小错 我总结我的小错有这些:数组未初始化 scanf("%d")无空格 这个题目如果总是有个测试点过不去就是因为A2类的交错求和的结果本身就是0,而你把0作为判断这一类数字不存在的条件是错误的!
#include <stdio.h> int main() { int N,i=0,t=0; int number[1005]={0}; int A=0,B=0,C=0,flag=1,max=0; double D=0,pig=0; scanf("%d",&N); for(i=0;i<N;i++) scanf("%d",&number[i]); for(t=0;t<=i;t++) { switch(number[t]%5) { case 0: if(number[t]%20) A+=number[t]; break; case 1: if(flag%20) B-=number[t]; else B+=number[t]; flag++; break; case 2: C++; break; case 3: D+=(double)number[t]; pig++;break; case 4: if(number[t]>max) max=number[t];break; default:break; } }
if(A==0) printf("N "); else printf("%d ",A); if(B==0&&flag==1) printf("N "); else printf("%d ",B); if(C==0) printf("N "); else printf("%d ",C); if(D==0) printf("N "); else printf("%.1lf ",D/pig); //注意我之前设置pig=0忽略了D=0时,D/pig不成立! if(max==0) printf("N"); else printf("%d",max);return 0; }