| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 841 人关注过本帖
标题:这又是什么问题啊,怎么就不安全了啊
只看楼主 加入收藏
nmwnwnu
Rank: 1
来 自:甘肃
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-4-24
结帖率:0
收藏
 问题点数:0 回复次数:12 
这又是什么问题啊,怎么就不安全了啊
if(a>=b>=c)
        max=a;
        min=c;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(a>=c>=b)
        max=a;
        min=b;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
D:\c语言文件\CEXAM3_2P64.CPP(9) : warning C4804: '>=' : unsafe use of type 'bool' in operation
D:\c语言文件\CEXAM3_2P64.CPP(13) : error C2181: illegal else without matching if
2014-05-14 12:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
寫出這樣的代碼,你的C學得很好咯,用邏輯型數據與其他數據類型比較。

授人以渔,不授人以鱼。
2014-05-14 13:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
另外,你寫這個if()表達式,想表達什麽邏輯?

授人以渔,不授人以鱼。
2014-05-14 13:07
nmwnwnu
Rank: 1
来 自:甘肃
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-4-24
收藏
得分:0 
回复 3 楼 TonyDeng
那个我是想表达将abc三个数比较然后最大的赋值给max,最小的赋值给min,可是就是出现了错误
2014-05-14 13:25
nmwnwnu
Rank: 1
来 自:甘肃
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-4-24
收藏
得分:0 
回复 2 楼 TonyDeng
什么意思,逻辑型数据可以和浮点型数据比较?
2014-05-14 13:26
nmwnwnu
Rank: 1
来 自:甘肃
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-4-24
收藏
得分:0 
就这个样子,可是错误主要是上面那个
#include <iostream>
using namespace std;
int main ()
{
    double a,b,c;
    double max,min;
    cout<<"请任意输入3个实数,我可以求出最大值和最小值。";
    cin>>a>>b>>c;
    if(a>=b>=c)
        max=a;
        min=c;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(a>=c>=b)
        max=a;
        min=b;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(b>=c>=a)
        max=b;
        min=a;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(b>=a=c)
        max=b;
        min=c;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(c>=a>=b)
        max=c;
        min=b;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    return 0;

}
2014-05-14 13:28
nmwnwnu
Rank: 1
来 自:甘肃
等 级:新手上路
帖 子:19
专家分:0
注 册:2014-4-24
收藏
得分:0 
就这个样子,可是错误主要是上面那个
#include <iostream>
using namespace std;
int main ()
{
    double a,b,c;
    double max,min;
    cout<<"请任意输入3个实数,我可以求出最大值和最小值。";
    cin>>a>>b>>c;
    if(a>=b>=c)
        max=a;
        min=c;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(a>=c>=b)
        max=a;
        min=b;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(b>=c>=a)
        max=b;
        min=a;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(b>=a=c)
        max=b;
        min=c;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else if(c>=a>=b)
        max=c;
        min=b;
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    else
        cout<<"您输入的三个实数中,最大的是:"<< max <<'\n'<<"最小的是:"<< min <<"\n";
    return 0;

}
2014-05-14 13:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你寫的是程序,不是數學。想表達a、b、c中的最大者,應是if((a >= b) && (b >= c)),不是你寫的那個。中間兩個括號中括著的都是邏輯結果,也衹有邏輯數據才能用邏輯運算符。C++不是C,它有內置的邏輯數據類型bool,所有諸如a>=b這樣的表達式,其運算結果是bool型的,不是數値型的,用bool型與其他數據類型做邏輯運算,編譯器就提示你不要這樣做,雖然可以強行這樣做,但並不建議,所以提示信息說是不安全的用法。你寫的那個,並不知道編譯器是先求a>=b還是b>=c,總之求出一個之後,就得到一個bool型數據,要與另一個非bool數據做比較運算,編譯器不知道會怎麽做。

那個提示信息說的是:在>=這裡,是不安全地使用bool數據類型的操作。

[ 本帖最后由 TonyDeng 于 2014-5-14 13:40 编辑 ]

授人以渔,不授人以鱼。
2014-05-14 13:36
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
收藏
得分:0 

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-05-14 15:02
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
建议楼主认真看书
2014-05-14 16:10
快速回复:这又是什么问题啊,怎么就不安全了啊
数据加载中...
 
   



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

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