问一下这个程序为什么输入字母不出现error,输入数字反而出现error

img

img


这个程序输入字母m,n后什么也不显示,输入数字56,78后反而出现error,请问一下是为什么

供参考:

#include <stdio.h>
int main()
{
    int m, n, i, j, z, s = 0, flg = 0, ret;
    ret = scanf("%d,%d", &m, &n);
    if (ret != 2 || m > 9999 || n > 9999) {
        printf("error");
    }
    else {
        if (m > n) {
            z = m; m = n; n = z;
        }
        for (i = m; i <= n; i++) {
            for (j = 1, s = 0; j <= i / 2; j++) {
                if (i % j == 0) s += j;
            }
            if (s == i)
                printf(flg++ == 0 ? "%d" : ",%d", i);
        }
    }
    return 0;
}

%ld呀,大哥别乱用哦。ld对应long,不是int哦。数据类型不对。输入字母没有反应,是因为还卡在输入阶段。