C语言水仙花数问题!

int main() {
int n;
scanf("%d",&n);
int i,m,p,sum;
for(i=pow(10,n-1);i<=(pow(10,n)-1);i++){
while(i!=0){
m=i%10;
if(m==0){
i=i/10;
continue;
}
p=pow(m,n);
sum+=p;
i=i/10;
}
if(sum==i) printf("%d\n",i);
}
return 0;
}
错在哪了??

已经修改完成,并运行通过:

#include<stdio.h>

#include<math.h>

int main() {

 int n,i,i1,m,p,sum;

   scanf("%d",&n);

   for(i=pow(10,n-1);i<=(long)(pow(10,n)-1);i++){

     i1=i; sum=0;

     while(i1!=0){

m=i1%10;

     p=pow(m,n);

     sum+=p;

     i1=i1/10;

   }

   if(sum==i) printf("%d\n",i);

   }

   return 0;

}

追问

我那是错在哪

我那是错在哪

追答

你仔细对照一下不就知道了吗。
控制变量 i 的值被修改了。
sum重复使用未重新初始化。

追问

懂了~谢谢~

懂了~谢谢~

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答