求解一个数的最小生成元

img


帮我看一下这个程序哪里错了,为什么最后不管输入什么数,输出结果都是0?

这么改,供参考:

#include <stdio.h>
int main()
{
    int n, a, m, s, i;
    scanf("%d", &n);
    for (i = 1, m = 0; i < n; i++) {
        a = s = i;
        while (a) {
            s += a % 10;
            a /= 10;
        }
        if (s == n){
            m = i;
            break;
        }
    }
    printf("%d", m);
    return 0;
}

https://blog.csdn.net/myCsdn_Xm/article/details/81118118