刚学c语言水仙花数遇到困难

刚学c语言看到水仙花数这道经典题目写了一遍不知道哪错了能不能指导一下

img

你管这叫水仙花数?你这是求Armstrong数吧?我照着你这代码写了倒是能运行。可以参考:https://www.runoob.com/cprogramming/c-examples-check-armstrong-number.html

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

int main()
{
    int n;
    scanf("%d", &n);
    int i;
    int first = 1;
    first = pow(10, n-1);
    printf("first=%d\n", first);
    i = first;
    while(i < first*10)
    {
        int t = i;
        int sum = 0;
        do{
            int d = t % 10;
            t /= 10;
            int p = d;
            int j = 1;
            while(j < n)
            {
                p *= d;
                j++;
            }
            sum += p;
        }while(t > 0);
        if(sum == i)
        {
            printf("%d\n", i);
        }
        i++;
    }
    return 0;
}