25行的else去掉啊。无论sum是否等于x,sum都需要复位为0才行正是由于else的存在,导致370是水仙数时,sum没有复位,从而371的计算就出错了,sum值和370计算值累加了
22-27行改为:
if(sum==x) { printf("%d\n",x); } sum=0;