| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1742 人关注过本帖
标题:这个程序用bool变量为设么运行错误?
只看楼主 加入收藏
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:0 
回复 30楼 跳跳鱼
打错了,是不写 return false 就错了?
2012-08-24 21:51
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用跳跳鱼在2012-8-24 21:50:41的发言:

。。。。。那为什么要是把return false 写上,这道题就运行错误啦???

什么运行错误?
2012-08-24 21:53
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:0 
回复 32楼 zklhp
不写return false 结果就变成这样了
图片附件: 游客没有浏览图片的权限,请 登录注册

不信你试试?
2012-08-24 21:55
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
  if (t==m)
        return true;
    return false;

如果不写return false; 那其他时候不就没返回值了
2012-08-24 21:56
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
我的意思是 false是0 非0是true 不返回false也可以返回0嘛 不好看罢了
2012-08-24 21:57
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:0 
回复 34楼 zklhp
所以说为了保险起见,还是都写上好喽?
你在看看下边这个求素数的程序,我要是再加上一个 return true 就会多一个错误的值
程序代码:
#include <iostream>
#include <cmath>
using namespace std;
bool su(int );
int main()
{ int j;
for(j=1;j<=10;j++)
{
    if(su(j))
     cout<<j<<endl;
}
return 0;
}
bool su( int n)
{
    if(n==1) return 0;
    for(int i=2;i<=sqrt(n);i++)
    
        if(n%i==0)
            return false;    
                    else return true;
}

这是结果
图片附件: 游客没有浏览图片的权限,请 登录注册
2012-08-24 22:03
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
for(int i=2;i<=sqrt(n);i++)
{
        if(n%i==0)
            return false;   
                    else return true;
}
2012-08-24 22:05
跳跳鱼
Rank: 2
等 级:论坛游民
帖 子:74
专家分:60
注 册:2011-5-4
收藏
得分:0 
以下是引用zklhp在2012-8-24 22:05:33的发言:

for(int i=2;i<=sqrt(n);i++)
{
        if(n%i==0)
            return false;   
                    else return true;
}

括号括起来也没用,我试了
2012-08-24 22:08
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
不对啊 你这样一改不就变成找素数的代码了么
2012-08-24 22:10
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
那你这个逻辑也得改

程序代码:
#include <iostream>
#include <cmath>
using namespace std;
bool su(int );
int main()
{
    int j;
    for(j=1;j<=10;j++)
    {
        if(su(j))
            cout<<j<<endl;
    }
    return 0;
}
bool su( int n)
{
    if(n==1) return 0;
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
            return false;  
    }
    return true;
}



最后都不返回 才返回一个true
2012-08-24 22:14
快速回复:这个程序用bool变量为设么运行错误?
数据加载中...
 
   



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

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