供参考:
#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哦。数据类型不对。输入字母没有反应,是因为还卡在输入阶段。