自定义如何返回多个值(水仙花)


#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循环就不能用了再定义

img

img