C语言水仙花数,求改错


#include<stdio.h>
int main()
{
    int i,j,x,sum=0;
    printf("计算100-999之间的水仙花数:\n");
    for(i=100;i<1000;i++)
    {
        j=i;
        while(j>0)
        {
            x=j%10;
            sum=sum+x*x*x;
            j/=10;
        }
        if(sum==i) printf("%d\t",i);
    }
    return 0;
}
//运行出来后一个结果都没有,为什么?

你 sum 没清0 啊,每一轮需要把 sum 清0,你现在一直在累加,打个断点应该看得很清楚的


#include <stdio.h>

int main()

{

int x,a,b,c,d,e,f;

for(x=100;x<1000;x++)

{

a=x/100;

b=(x-a*100)/10;

c=x-100*a-10*b;

if(x==a*a*a+b*b*b+c*c*c)

printf("%d\n",x);

}

return 0;

}