c#三个数从小到大排序_【Unity&C#】使用?:表达式比较三个数大小并对其排序

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:03   1346   0

使用 ? : 表达式比较三个数大小并对其排序,C#的代码怎么写

------------------------------------------------------------------------下面是错误的示范

设置A,B,C三个整型数字,使用 Random.Range函数来对这3个数字赋值

如下所示:

a = Random.Range(0, 100);// a

b = Random.Range(0, 100 - a);// b

c = 100 - a - b;//c

string classify = ((Mathf.Abs(a - c)) > (Mathf.Abs(b - c))) ? "A" : ((b > c) ? "B" : "C");//3个数字中的最 大 值

string classify1 = ((Mathf.Abs(a - c)) < (Mathf.Abs(b - c))) ? "A" : ((b < c) ? "B" : "C");//3个数字中的最 小 值

Debug.Log(classify + classify1);

//这个是找到3个数值中的最大值

--------------------------------------------------------------------下面是正确的代码以及 逻辑 思路

void JudgeMaxMiddleMin()

{

//int a, b, c;

a = Random.Range(1, 100);// a

b = Random.Range(1, 100 - a);// b

c = 100 - a - b;//c

//round (a > b ? a:b)

//triangle (a < b ? a :b)

int max = ((a > b ? a : b) > c ) ? (a > b ? a : b) : c;//大Max = round > c ? round : c

int middle = ((a > b ? a : b) > c) ? ((a < b ? a : b) > c ? (a < b ? a : b) : c) : (a > b ? a : b);//中Middle = round > c ? ( triangle > c ? triangle : c) : round

int min = ((a > b ? a : b) > c) ? ((a < b ? a : b) > c ? c : (a < b ? a : b)) : (a < b ? a : b);//小Min = round > c ? ( triangle > c ? c : triangle) : triangle

Debug.Log(" Max "+max +" Middle "+ middle + " Min " + min);

Debug.Log(" A " + a + " B " + b + " C " + c);

}

逻辑图如下所示:

首先a和b进行数值比较,其结果再和c进行比较。把逻辑转换为?:表达式即可

86827b4fb5d50aa9e7c33008e16cbb6b.png(大图)

--------------------------------------------------------------------

参考资料:

1.C#怎么比较三个数的大小并按从大到小的顺序输出?要用if语句.

2.

c#中比较三个数的大小

3.

用c#比较三个数的大小,并输出最大数。

4.

C#之三个数排序and求平均值+按值传递与按引用传递

5.

6.

7.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP