大一新生,可以看看这段代码哪出问题了吗

img

img

img


关于水仙花数一题的一个做法,
当输入3的时候这段代码运行输出会少个371,不知道是哪里出了问题,求解答🥺

25行的else去掉啊。无论sum是否等于x,sum都需要复位为0才行
正是由于else的存在,导致370是水仙数时,sum没有复位,从而371的计算就出错了,sum值和370计算值累加了

22-27行改为:

if(sum==x)
{
    printf("%d\n",x);
}
sum=0;