#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;
}