cjq_jsj 2022-03-24 11:50 采纳率: 100%
浏览 291
已结题

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

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

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-03-24 12:01
    关注
    #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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测