#include
int narcissistic( int number );
void PrintN( int m, int n );
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
return 0;
}
int narcissistic( int number )//求水仙花
{
int n=0,s=number,sss=number;
int x,y,ss,su=0,suu=0,ii;
while(s!=0)
{
s=s/10;
n=n+1;
}
while(sss!=0)
{
ss=sss%10;
sss=sss/10;
for(ii=1;ii<=n;ii++)
{
suu=suu*ss;
}
su=su+suu;
}
if(su==number)
return 1;
else
return 0;
}
void PrintN( int m, int n )//找出所有水仙花数,mn范围之内
{
int i,sa;
for(i=m;i<=n;i++)
{
while(narcissistic(i)==1)
return i;
}
}
我想打印mn之内的所有水仙花数,判断水仙花数的函数没问题,但是第二个用于找到所有水仙花数的函数有问题,编译器报错48 10 C:\Users\lunal\Documents\语?栽?这?颸??花??.cpp [Error] return-statement with a value, in function returning 'void' [-fpermissive]。48行即“return i"部分。
并且我想知道,为什么第一个while循环中用了”s=s/10;“,第二个while循环就不能用了再定义