主要是我不会怎么设定那个如果不是三位整数就输出Error呢

设计一个函数判断一个数是否为“水仙花数”,通过函数调用输出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一“水仙花数”,因为153= + + 。注意:若输入的不是3位正整数,则输出 Error输入样例1:153输出样例1:YES
输入样例2:100输出样例2:NO

水仙花数 一般都用三位数的

四位以上的水仙花数定义不在是立方和了。

扩展的“水仙花数” 是指: 其各位数字的 位数次方和等于该数本身。

四位水仙花数指 其各位数字的 4次方和等于该数本身。
五位水仙花数指 其各位数字的 5次方和等于该数本身。
...以次类推:


#include<stdio.h>
#include<math.h>
int getsum(int n)
{
    int sum=0,ret=0,count=0;
    while(n)
    {
        ret=n%10;
        sum+=(int)pow(ret,3);
        n/=10;
        count++;
    }
    if(count!=3)
        return 0;
    return sum;
}
int main()
{
    int n;
    while(~scanf("%d ",&n))
    {
            if(n==getsum(n)&&getsum(n)!=0)
            {
                 printf("YES");
            }
        if(!getsum(n))
             printf("Error");
       else
            printf("NO");
        printf("\n");
    }
    return 0;
}