如果输入数据“32 25 20 23 35 52 87 22 48 30 0”。这个代码答案为什么是45啊?难道不是25+20+23+22=90吗?脑子短路了……


#include <stdio.h>
int main()
{
    int a[4]={0},i,x;
    scanf("%d",&x);
    while(x!=0)
    {
        if(x%5==0) a[1]+=2;
        else if(x/10==2)
        a[2]+=x;
        else a[3]+=1;
        scanf("%d",&x);
    }
    printf("%d",a[2]);
    return 0;
}

别忘了,优先过滤的是x%5==0啊,25,20满足这个条件,只会对a[1]加2。所以只有23,22满足执行a[2]+=x的条件,结果就是45

因为只有23和22能到那一步,其他的像25满足上面一个if里的条件,
只有不满足x%5==0前提下满足x/10=2才能加到a2里去