标题:关于3个数字排列问题,搞不明白
只看楼主
zm195744172
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-14
 问题点数:0 回复次数:7 
关于3个数字排列问题,搞不明白

            int a = 2,
                b = 3,
                c = 4;
            int m, n, l, k;
            m=a<b?a:b;
            n=m<c?m:c;
            l=a>b?a:b;
            k=c>l?c:l;
            Console.WriteLine("a=2, b=3, c=4");
            Console.WriteLine("{0}>{1}>{2}", k, l , n);
            Console.ReadLine();



我想问一下倒数第二行的l为什么不能换成m,苦恼中。。。
搜索更多相关主题的帖子: 倒数 
2011-10-15 07:44
zm195744172
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-14
得分:0 
在线等哦。。。新手,勿笑
2011-10-15 07:45
zm195744172
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-14
得分:0 
顶上来。。。。
2011-10-15 08:59
zm195744172
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-14
得分:0 
有人没????
2011-10-15 09:06
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
1、m=a<b?a:b;
2、n=m<c?m:c;
3、l=a>b?a:b;
4、k=c>l?c:l;
楼主有仔细看懂上述4个表达式没,
从第3个表达式,可以看出,l记录的是a和b之间的大的那个;从第4个表达式看出,k是记录c和l之间的大的那个,也就是k是记录c与a、b之间大的数比;
那么得出 k是(最大),l是(最大或第二大),
同样的原理n是(最小),m是(最小或第二小)

所以得出k和l可能相等,m和n可能相等,换句话说,这个算法是有问题的
因为abc的值确定,那么我们就可以算出,m=2,n=2,l=3,k=4,如果要输出4 > 3 > 2 ,那么就一定是 k > l > m(或n), 所以中间那个一定是l
2011-10-15 11:38
ilikeliyun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-29
得分:0 
ndsh

2011-10-15 13:19
zm195744172
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-14
得分:0 
还是不太明白。。。天。
2011-10-15 20:27
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
m=a<b?a:b;
像这样的表达式,能看懂吗?
这是三目运算
?号前面,表示判断,如果为true 就赋 :前面的值,如果为false 就赋 :后面的值
这样的语句等同于
if(a < b)
{
    m = a;
}
else
{
    m = b;
}
你要能看懂代码,就能理解了
2011-10-15 23:48



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




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

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