小白求助 算法有错误 找不出来,可以运行但是无法达到效果

计算水仙花数的算法
#include
int main()
{
int a=100,b,c,d=0;
while(a<1000)
{
b=a;
while(b!=0)
{

c=b%10;
d=d+c*c*c;
b=b/10;
}

if(a==d)
printf("%d",d);
a++;

}
}
可以运行但是运行后没出数字啊啊啊啊

你的d是不是每个数重新计算时没有初始化。。

 #include<stdio.h>
#include<stdlib.h>

int main()
{
    int a=1;
    int b=0,c=0,i=0;

    while(a<=9)
    {
        while(b<=9)
        {
            while(c<=9)
            {
                if (a*100+b*10+c == a*a*a+b*b*b+c*c*c)
                {
                    printf("%d%d%d ",a, b, c);
                    i++;
                }
                c++;
            }
            b++;
            c=0;
        }
        a++;
        b=c=0;
    }
    printf("\n%d\n",i);
    return 0;
}