标题:这个程序用bool变量为设么运行错误?
只看楼主
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
以下是引用zklhp在2012-8-24 00:21:20的发言:

不玩了 睡觉、、 pangding版主记得把那个散分帖结了 嘻嘻
好的。
2012-08-24 00:26
mfs111116
Rank: 2
来 自:山东烟台
等 级:论坛游民
帖 子:28
专家分:38
注 册:2012-8-22
得分:0 
程序代码:
#include <iostream>

using namespace std;

bool perfect(int);

int main()
{
    int number;

    cout<<"此程序将输出1000之内的所有完数:"<<endl;
    for (number=1;number<=1000;number++)
    {
        if (perfect(number))
        {
            cout<<number<<'\t';
        }
    }
    cout<<endl;
    return 0;
}

bool perfect(int m)
{ 
    int i;
    int t=0;
    for (i=1;i<m;i++)
    {
        if(m%i==0)
            t=t+i;
    }
    if (t==m)
        return true;
    return false;
}
[attach]64392[/attach]源码同二楼,只是 加入一分格符\t,一个换行,再将原先number的循环(10)改到了1000,运行结果如上,可以通过……
顺便问一下,论坛里不能够搜索么?想找一下有关wchar_t的相关问题,不是很明白……


[ 本帖最后由 mfs111116 于 2012-8-24 13:16 编辑 ]
2012-08-24 13:13
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
得分:0 
我知道我错在哪儿了,return true,与return false 必须成对出现。。。。还有,我昨天晚上就离开了早了点,你们就聊这么欢。。。。
2012-08-24 13:22
mengcan555
Rank: 4
等 级:业余侠客
帖 子:104
专家分:253
注 册:2011-9-17
得分:0 
#include <iostream>

using namespace std;

bool perfect(int);

int main()
{
    int number;

    cout<<"此程序将输出1000之内的所有完数:"<<endl;
    for (number=1;number<=10;number++)
    {
        if (perfect(number))
        {
            cout<<number<<endl;
        }
    }
    getchar();
    return 0;
}

bool perfect(int m)
{  
    int i;
    int t=0;
    for (i=1;i<m;i++)
    {
        if(m%i==0)
            t=t+i;
    }
    if (t==m)
        return true;
    return false;
}
我输出正常 是6
2012-08-24 17:04
mfs111116
Rank: 2
来 自:山东烟台
等 级:论坛游民
帖 子:28
专家分:38
注 册:2012-8-22
得分:0 
  for (number=1;number<=10;number++)
楼上,你的循环上限是10,当然只能输出6了……第一个完数是6,第二个是28,第三个是456,在百度上可以找到……

[ 本帖最后由 mfs111116 于 2012-8-24 17:53 编辑 ]
2012-08-24 17:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
以下是引用跳跳鱼在2012-8-24 13:22:07的发言:

我知道我错在哪儿了,return true,与return false 必须成对出现。。。。还有,我昨天晚上就离开了早了点,你们就聊这么欢。。。。

其实不用,一般写 return t==m; 就行了。
2012-08-24 21:09
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
回复 22楼 mfs111116
可以搜呀。不过我搜了一下,老帖也介绍的不是太好。如果真想找资料,可能得自己用用搜索引擎了
2012-08-24 21:13
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
得分:0 
回复 2楼 zklhp
bool变量中 return true与return false必须成对出现吗?如果不是,为什么这道题必须都写上?
2012-08-24 21:47
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用跳跳鱼在2012-8-24 21:47:43的发言:

bool变量中 return true与return false必须成对出现吗?如果不是,为什么这道题必须都写上?

我都写上是为了好看。。
2012-08-24 21:48
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
得分:0 
回复 29楼 zklhp
。。。。。那为什么要是把return false 写上,这道题就运行错误啦???
2012-08-24 21:50



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




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

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