#include<stdio.h>
#include<math.h>
int main()
{
int count=0,m,i,j,p,s=0;
for(i=1;i<10000;i++)
{
j=i;
while(i!=0){
m=i%10;
i=i/10;
p=pow(m,3);
s=s+p; }
if(s!=j)continue;
else { printf("1-10000的水仙花数有%ld\n",j);
count++; }
}
printf("1-10000的水仙花数有%d个",count);
return 0;
}
在for循环里,把i赋值给力j,while循环里应该也是j,因为for循环成不成立判断的是i,而你的i在while一直在改变。