刚学硬算的不定位数水仙花数,输出一直不对,求教导

刚开始学c语言,现学现用的for和pow,研究了一晚上,几部分单独拿出来运行了一下都挺对的,不知道为啥结果一直是错的。

img

img

=是赋值
==是等于,你的for循环和if有问题,if要判断是否相等用==

供参考:

#include <stdio.h>
#include <math.h>
int main()
{
    int N, i, p, t, sum, n, m, k;
    printf("input num(3<= N <=7):");
    scanf("%d", &N);
    for (i = pow(10, N - 1), p = i * 10; i < p; i++) {
        for (sum = 0, t = i; t > 0; t /= 10) {
            m = N; k = 1;
            n = t % 10;
            while (m--)k *= n;
            sum += k;
        }
        if (sum == i)
            printf("%d\n", i);
    }
    return 0;
}