标题:c语言程序设计问题
只看楼主
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
结帖率:85.71%
已结贴  问题点数:20 回复次数:2 
c语言程序设计问题
【问题描述】

一个整数,如果其所有小于它本身的因子(包括1)之和正好等于该数,则称其为“完全数”。编写程序计算某一范围内的所有“完全数”。

【输入形式】

从控制台输入数据范围的下限m和上限n,m和n都为整数,且1<=m<=n<=10000,m和n之间用一个空格分割。

【输出形式】

向控制台输出m和n之间的所有&ldquo;完全数&rdquo;(包括m和n本身),所有输出的数据以从小到大的顺序显示在一行上,各数之间以一个空格分割。若该范围内没有完全数,则输出字符串No Answer。

【样例1输入】

1 100

【样例1输出】

6 28
我的代码如下:

#include<stdio.h>
int main()
{
    int m,n,x,sum,y,a;
    sum=0,a=0;
    scanf("%d%d",&m,&n);
    for(x=m;x<=n;x++)
    {
        for(y=1;y<x;y++)
        {
            if(x%y==0)
            sum+=y;
        }
        if(sum==x)
        {
            printf("%d",x);
            a++;
        }
    }
    if(a==0)
    printf("No Answer");
    return 0;
}
请各位大佬帮忙看看是哪错了,谢谢谢谢。
搜索更多相关主题的帖子: sum 程序设计 输入 范围 输出 
2019-11-25 13:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
要不,你就听听C标准的劝,不要将变量污染到块外面,即
删掉 int sum; 和 sum=0; 而是改为 for(x=m;x<=n;x++){ 后面加一句 int sum = 0;
2019-11-25 14:05
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
得分:0 
回复 2楼 rjsp
wow~~~对不起我傻了。。。谢谢谢谢
2019-11-25 18:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498066-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.512749 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved