问题:从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。先后输入两个正整数m和n,用逗号分隔,输出所有完数,每两个数之间用逗号分隔。若输入非法,则输出“error”
代码
#include<stdio.h>
int main(){
int m,n,t,sum,i;
scanf("%d,%d",&m,&n);
if(m>0&&m<=9999&&n>0&&n<=9999){
if(m>n){
t=m;
m=n;
n=t;
}
for(;m<=n;m++){
sum=0;
for(i=1;i<m;i++){
if (m%i==0)
sum=sum+i;
}
if(sum==m)
printf("%d,",m);
}
}
else
printf("error\n");
return 0;
}
运行结果
输入:1,2000
输出:6,28,496,
尝试用printf"\b"消去最后一个逗号,但本质上还是存在
我想要达到的结果
输入:1,2000
输出:6,28,496