求范围内的水仙花数时进不了循环
程序代码:#include<stdio.h>
#include<math.h>
int main()
{
int min,max,need,i,num=0,needbak,bit;
long sum=0;
int a[10];
printf("Please input the min number you need:\n");
scanf("%d",&min);
printf("Please input the max number you need:\n");
scanf("%d",&max);
need=max; //[min,max]的遍历
while(need>=min)
{
needbak=need;
for(i=10;i>=0;i--)
{
a[i]=(long int)need/pow(10,i);
//分出每一位数
need=need-a[i]*pow(10,i);
}
for(i=10;i>=0;i--)
{
if(a[i]!=0) {bit=i+1;i=0;}
//求取数字的位数
}
//以下是水仙花数的判断
for(i=10;i>=0;i--)
{
sum=sum+pow(a[i],bit);
}
if(needbak==sum)
{
printf("%d ",needbak);
num++;
}
need=needbak;
need--;
}
printf("\nThe numbers of the shuixianhua number is:%d\n",num);
return(0);
}在对初始值(need=500)进行了循环体中的内容后,gdb调试中max的值变成了0,导致条件不符进入不了循环。结果:只能对范围内的一个数进行水仙花数的判断。
求各位的指教!




