| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:大神们,帮忙看一下哪里有问题,谢谢
只看楼主 加入收藏
H15730239129
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-12-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
大神们,帮忙看一下哪里有问题,谢谢
#include<stdio.h>
int main()
{
    int n,x,i,j,mul=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&x);
        for(j=1;j<=x/2;j++)
        {
            if(x%j==0)
                mul+=j;
        }
        if(mul==x)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}
(求完数,)
2015-12-12 16:06
大小熊
Rank: 2
来 自:hu nan
等 级:论坛游民
帖 子:4
专家分:10
注 册:2015-12-13
收藏
得分:10 
mul初始应该放在第一层for循环里,要不然会mul的值保存了上一次计算的值。而且应该初始化mul为1,否则你的程序不会加上因子1
2015-12-13 18:51
钱少
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:11
注 册:2015-12-14
收藏
得分:10 
#include<stdio.h>
int main()
{
    int n,x,i,j,mul;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        mul=0;   //mul赋值为0
        scanf("%d",&x);
        for(j=1;j<=x/2;j++)
        {
            if(x%j==0)
                mul+=j;
        }
        if(mul==x)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
2015-12-14 22:01
快速回复:大神们,帮忙看一下哪里有问题,谢谢
数据加载中...
 
   



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

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