| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6481 人关注过本帖
标题:c语言比较三个数大小
只看楼主 加入收藏
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:0 
好学是好事,我也喜欢好学的人,三目运算可以搜索资料看看,理解也不难,把?当作if把:当作else看到即可,比较容易理解。
我写的是嵌套三目运算一个三目运算嵌套两个三目运算,连着写看不很清楚时分开看就很明白了:
程序代码:
cout << "最小" << 
(a > b ? 
b > c ? c : b

 :

 c > a ? a : c
) << endl;

以下是引用Z1020在2020-1-6 14:57:13的发言:

题目是用max函数比较三个数的大小,比较其他组的大小都没问题,但唯独比较-1 -2 -3这三个数时得到的max为-2,求大佬指明错误。谢谢!
我的代码:
#include<stdio.h>
int max(int a,int b)
{
    int re=a;
    if(b>a)
    re=b;
    return re;
}
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("max=%d",max((a,b),c));
    return 0;
}

你上门的函数调用理解问题,函数传递2个参数,因此,要先调用一次(a,b)返回值后再调用一次,因此,可分开2次写,连续写就要写为max(max(a,b),c)这样才对。
以下是引用叶纤在2020-1-6 17:17:11的发言:

大神我想问?这个符号是什么
因为我不知道?这个符号的意思
我只能这样理解就拿最小值来说
a大于b吗b大于c吗    是的话c就是b  要想b等于c需要c大于a吗a等于c

收到的鲜花
  • 叶纤2020-01-07 16:51 送鲜花  1朵  
2020-01-07 09:59
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
听楼上这样说我突然脑壳子一动一下子有个想法,然后我尝试着在编译器上敲,哈哈哈哈哈哈!!!!!!!居然可以还成功做了本题,兴奋死我了给个花花,以下是我的备忘录
#include<iostream>
using namespace std;
int main()
{ int a,b,c;
cin >> a>>b>>c;
cout<<((a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c)
);}

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-07 16:50
xianfajushi
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:527
专家分:690
注 册:2007-9-8
收藏
得分:0 

爱动脑是好事,我的经验是过段时间得空闲有机会回头再看看以前写的东西,会有所悟.
屈指可数,你这写得是53式,我那个写的是32式,就像是倚天屠龙记中张三丰说的太极拳已无瑕疵.
2020-01-08 09:35
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
printf("max=%d",max((a,b),c));

你这是想递归调用?
可是事实是只调用了一次max函数其两个参数分别是(a,b)和c 。
2020-01-09 23:09
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 15楼 bcbbcclbbc
感谢已懂
2020-01-09 23:29
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 12楼 xianfajushi
谢谢大佬!
2020-01-09 23:31
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:0 
以下是引用叶纤在2020-1-7 16:50:53的发言:

听楼上这样说我突然脑壳子一动一下子有个想法,然后我尝试着在编译器上敲,哈哈哈哈哈哈!!!!!!!居然可以还成功做了本题,兴奋死我了给个花花,以下是我的备忘录
#include<iostream>
using namespace std;
int main()
{ int a,b,c;
cin >> a>>b>>c;
cout<<((a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c)
);}


cout<<((a>b?a:b)>(b>c?b:c)?(a>b?a:b):(b>c?b:c))   为什么不能这样  cout<<((a>b?a:b)>c?(a>b?a:b):c)
对比下面这句
max(max(a,b),c)
一个是调用函数,一个是表达式求值,但实现的算法是一样的,写出其中之一,另一个应该不难写出
2020-01-12 23:00
快速回复:c语言比较三个数大小
数据加载中...
 
   



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

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