求uu们看看错误在哪,无结果输出

img

img

第10行增加sum=0;每次循环需要将sum恢复为0,否则会累加

满足if才有输出,你加个else情况下的输出

供参考:

#include<stdio.h>
int main()
{
    int N, i, M, t, sum, n, m, k, flg = 0;
    scanf("%d%d", &N,&M);
    if (N <= 0 || M > 1000000 || N > M)
        return - 1;
    else{
        for (i=N; i <= M; i++) {
            N = i; m = 0;
            while (N) { m++; N /= 10;}
            for (sum = 0, N = m, t = i; t > 0 && N > 2; t /= 10) {
                m = N; k = 1;
                n = t % 10;
                while (m--)k *= n;
                sum += k;
            }
            if (sum == i) {
                printf(flg++ == 0 ? "%d" : " %d", i);
            }
        }
        if (!flg)
            printf("none");
    }
    return 0;
}