大一新生,求个人指导一下求水仙花数

有问题存在,但是找不到问题在哪里,有没有人教教啊?怎么看都是对的,也有思路,但是可能细节有问题吧

img

img

应该是判断一个数是否为水仙花数的那个for循环的结束条件不对,改为z!=0即可,即当当前数z的每一个数字大于0的数位都被处理完成就结束计算,修改如下:

参考链接:
水仙花数_百度百科

#include <stdio.h>
#include <math.h>

int main(void){
    
    int a,b,min,max,z,c,e,sum,n;
    double h;
    scanf("%d",&a);
    min=pow(10,a-1);
    max=pow(10,a);
    b=min;
    for(;b<=max;b++){
        
        z=b;
        c=1;
        for(sum=0;z!=0;c++){ //当z数字大于0数位都被处理,则结束计算 
            e=z%10;
            h=pow(e,a);
            sum+=h;
            z/=10; 
        }
        
        if(sum==b){
            printf("%d\n",b);
        }
    }
    
    return 0;
}
 

img