鱼C论坛

 找回密码
 立即注册
查看: 962|回复: 2

[已解决]帮忙看看

[复制链接]
发表于 2023-11-14 13:15:06 | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>

int main()
{
   int m,n,s;
        for (m=2;m<1000;m++)
        {
                s=0;
                for(n=1;n<=m;n++)
                if(m%n==0)
                                s+=n;
       
                        if(s==m) printf("%d",m);
        }
       
       
        return 0;

}
题目是求出1~1000的自然数中的所有完数(因子和等于该数本身的数),如6=1+2+3
请问我的程序错在哪里啊,为什么没有输出呢?
最佳答案
2023-11-14 13:15:07
你的程序中存在一些小错误。首先,你的程序没有在输出完数时打印换行符,导致输出结果会在同一行上。其次,你的程序没有正确计算完数,因为你的循环条件和条件判断有误。以下是你需要修改的程序:
#include <stdio.h>

int main()
{
    int m, n, s;
    for (m = 2; m <= 1000; m++)
    {
        s = 0;
        for (n = 1; n < m; n++)
        {
            if (m % n == 0)
            {
                s += n;
            }
        }

        if (s == m)
        {
            printf("%d ", m); // 输出完数
        }
    }

    return 0;
}

在修改后的程序中,我将外层循环的条件改为 m <= 1000 ,这样可以包括1000在内。同时,内层循环的条件改为 n < m ,因为我们不需要将m本身计算在内。另外,我在输出完数时添加了一个空格,以便在结果中进行分隔。

最佳答案

查看完整内容

你的程序中存在一些小错误。首先,你的程序没有在输出完数时打印换行符,导致输出结果会在同一行上。其次,你的程序没有正确计算完数,因为你的循环条件和条件判断有误。以下是你需要修改的程序: 在修改后的程序中,我将外层循环的条件改为 m
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-14 13:15:07 | 显示全部楼层    本楼为最佳答案   
你的程序中存在一些小错误。首先,你的程序没有在输出完数时打印换行符,导致输出结果会在同一行上。其次,你的程序没有正确计算完数,因为你的循环条件和条件判断有误。以下是你需要修改的程序:
#include <stdio.h>

int main()
{
    int m, n, s;
    for (m = 2; m <= 1000; m++)
    {
        s = 0;
        for (n = 1; n < m; n++)
        {
            if (m % n == 0)
            {
                s += n;
            }
        }

        if (s == m)
        {
            printf("%d ", m); // 输出完数
        }
    }

    return 0;
}

在修改后的程序中,我将外层循环的条件改为 m <= 1000 ,这样可以包括1000在内。同时,内层循环的条件改为 n < m ,因为我们不需要将m本身计算在内。另外,我在输出完数时添加了一个空格,以便在结果中进行分隔。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-11-14 13:29:33 | 显示全部楼层
isdkz 发表于 2023-11-14 13:15
你的程序中存在一些小错误。首先,你的程序没有在输出完数时打印换行符,导致输出结果会在同一行上。其次, ...

你好,这个题只能在两个if语句里面改动
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 18:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表