这样做为啥输出不了啊?符号啥的没问题啊!!

img


水仙花数的题, 符号没问题, 就是不能输出,就算出错也给我个结果啊……

把代码贴出来吧


#include <stdio.h>
int main()
{
    int n, t, j, d, s=0; 
    scanf("%d", &n);
    int first = 1, i;
    for(i = 1; i < n; i++)
    {
        first *= 10;
    }
    for(i = first; i < first*10; i++)   
    {
        s = 0;   //  ===============================每一次判断一个数i后都要将s初始化为0,不然s会进行累加超过1000,导致不等于s
        for(t = i; t > 0; t/= 10)  // 修改前是for(t = i; t > 0; t/10),t/10没有改变t的值,构成死循环
        {
            d= t % 10;
            int p = 1;
            for(j = 0; j < n; j++)
            {
                p*=d;
            }
            s+=p;
        }
        if (s==i)
            printf("%d\n",i);


    }
    return 0;
}


代码写的规范一点 格式化一下