求解,为什么这种方法求水仙花会失败

这种方法打印水仙花数为什么会失败啊?求解
#include
int main()
{
int sum=0;int n,m;
for(int i=100;i<1000;i++)
{
m=i;
while(m>0){
n=m%10;
sum =sum+nnn;
m=m/10;
}
if(i==sum)printf("%d",i);
}

return 0;

}

sum在for循环开始时,要设置为0

#include<stdio.h>
int main()
{
    int sum=0;int n,m;
    for(int i=100;i<1000;i++)
    {
        sum = 0;
        m=i;
        while(m>0){
            n=m%10;
            sum =sum+n*n*n;
            m=m/10;
        }
        if(i==sum)printf("%d ",i);
    }
}