if语句放如图的位置结果不对,但是放最外面的while就对了,我想半天没想出来区别是什么
下面的worning:文本末尾没有换行符
代码
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
int first =1;
i=first;
while(i<n){
first*=10;
i++;
}
//printf("%d",first);
//遍历first到firstx10-1
i=first;
while(i<first*10){
int t=i;
int sum=0;
while(t>0){
int d=t%10;
t/=10;
int x=1;
int j=d;
while(x<n){
x++;
j*=d;
}
sum+=j;
if(sum==i)
printf("%d\n",i);
}
i++;
}
return 0;
}


下面的worning:文本末尾没有换行符
代码
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
int first =1;
i=first;
while(i<n){
first*=10;
i++;
}
//printf("%d",first);
//遍历first到firstx10-1
i=first;
while(i<first*10){
int t=i;
int sum=0;
while(t>0){
int d=t%10;
t/=10;
int x=1;
int j=d;
while(x<n){
x++;
j*=d;
}
sum+=j;
if(sum==i)
printf("%d\n",i);
}
i++;
}
return 0;
}

