| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1742 人关注过本帖
标题:这个程序用bool变量为设么运行错误?
只看楼主 加入收藏
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
结帖率:93.75%
收藏
已结贴  问题点数:50 回复次数:46 
这个程序用bool变量为设么运行错误?
这是一个求完数的程序
先给大家一个正确的程序,但是为什么改成bool变量后运行错误呢?
程序代码:
#include <iostream>
using namespace std;
int perfect(int);       //改为bool perfect(int);
int main()
{
    int number;
    cout<<"此程序将输出1000之内的所有完数:"<<endl;
    for(number=1;number<=10;number++)
    {  perfect(number);    //改为if(perfect(number)) cout<<number;
         
    }
return 0;

}
int perfect(int m )
{   
    int i;
    int t=0;
    for(i=1;i<m;i++)
    {  
            if(m%i==0)
            t=t+i;
    }                                        //为什么用bool变量就错了呢?,例如,若t==m,return true,然后在主函数中修改一下
    if(t==m)
    cout<<m<<endl;
    return 0;
}
    

程序的运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
改为bool变量后运行结果
图片附件: 游客没有浏览图片的权限,请 登录注册
为什么会出现这种情况呢?求解
搜索更多相关主题的帖子: number color 
2012-08-23 22:31
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:40 
程序代码:
#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;
        }
    }
    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;
}


很奇怪啊 用g++编译运行确实有错误 其实我根本不会c++ 完全不懂。。
2012-08-23 23:25
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
  cout<<number; 改成 cout << number << "  "; 之后观察输出发生什么变化再做判断。

50 都给我吧,哈哈。
2012-08-23 23:43
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用pangding在2012-8-23 23:43:45的发言:

  cout<

没明白
2012-08-23 23:45
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
以下是引用zklhp在2012-8-23 23:25:51的发言:

 
#include  
 
using namespace std;
 
bool perfect(int);
 
int main()
{
    int number;
 
    cout<<"此程序将输出1000之内的所有完数:"<

小 z 上套喽。
2012-08-23 23:45
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
1
2
3

123
你能看出有什么区别吗?就是每个后面加个回车而已。
2012-08-23 23:46
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我改的那个也能编译运行。。
2012-08-23 23:46
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
是能你那个其实输出的是正确答案,只是人看着有些糊涂而已。
2012-08-23 23:48
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
有意思的是这个 这个代码编译后运行是这个 难道不是用g++编译c++文件?
2012-08-23 23:48
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用pangding在2012-8-23 23:48:00的发言:

是能你那个其实输出的是正确答案,只是人看着有些糊涂而已。

这是次要的 上面那个是咋回事?
2012-08-23 23:54
快速回复:这个程序用bool变量为设么运行错误?
数据加载中...
 
   



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

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