输出完数,结果每两个数之间用逗号分隔

问题:从键盘先后输入两个不大于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

#include<stdio.h>
int main(){
int m,n,t,sum,i,count=0;
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){
            if(count==0)
                printf("%d",m);
            else
                printf(",%d",m);     
            count++;
        }
            
    }
}
else
    printf("error\n");
 
return 0;
}

img

img

可以用一个计算器来计算有多少个完数了,如果到相应区间最后一个完数,则不输出逗号,不知道是不是你想要的那种效果,如下:


#include<stdio.h>

int main(){
int m,n,t,sum,i;
scanf("%d,%d",&m,&n);
int num=0;
int mtemp,ntemp;
int index=0;

if(m>0&&m<=9999&&n>0&&n<=9999){
    if(m>n){
        t=m;
        m=n;
        n=t;
    }
    mtemp = m;
    ntemp = n;
    for(;m<=n;m++){
        sum=0;
        for(i=1;i<m;i++){
            if (m%i==0)
            sum=sum+i;
        }
        if(sum==m)
            num++;
    }
    
    m=mtemp;
    n=ntemp;
    for(;m<=n;m++){
        sum=0;
        for(i=1;i<m;i++){
            if (m%i==0)
            sum=sum+i;
        }
        if(sum==m){
            index++;
            if(index<num){
                printf("%d,",m);
            }else{
                printf("%d",m);
            }
        }
            
    }
    
}
else
    printf("error\n");
 
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632