#include
void main()
{
int n,s,sum=0,i;
for(i=1;i<=10000;i++) /*所以你这里可以直接从i=100开始,,*/
{
do {
n=i;
s=n%10;
n=n/10;
sum=sum+s*s*s;
}
while(n==0); /*do-while循环是指当while后面的表达式值为真的,就继续执行循环,所以你这个就是当n==0的时候,继续执行循环,而你的本意是指当n>0的时候执行循环,当n==0的时候循环结束,所以你这里应该改成:while(n>0); 还有,每次循环之后得给sum重新归零,不然它会从第一个开始一直累加上去的,记得我以前也忘记了重新归零,然后值得出了一个不是水仙花数的水仙花数,至于你这个sum=0;的语句是放在do-while循环的后面还是前面就由你自己了*/
if(i==sum);
printf("%d",sum);
}
}