显示的比较语句,例如 IF 语句, 或者是3目运算符(其实这个里面包含有判断语句,是比较语句的另一种形式)
我们考虑使用 符号函数。符号函数里面可能有比较语句,也可能没有,这个学过计算机原理的同学大约可以体会出来。在基本的逻辑电路中,是有比较电路的,如果符号函数直接编译成比较电路的机器码,那么这里面就没有使用显示的比较语句。不管它了,反正,代码里没有就可以了。
C# 代码如下:
方法一:
int[] x = new int[] { 100, 100 };
int [] rslt = new int[2] ;
char[] ch = new char[] { '<', '=', '>' };
int symbol = Math.Sign(x[0] - x[1])+1;
var result = string.Format("{0}{1}{2}", x[0], ch[symbol], x[1]);
txt_resutl.Text = result;
上述方法实际结果是不知道大小的,但是人可以看得到,符合题目要求;
方法二:
int[] x = new int[] { 100, 100 };
int [] rslt = new int[2] ;
var big = x[(1 - Math.Sign(x[0] - x[1])) / 2];
var small = x[(1 - Math.Sign(x[1] - x[0])) / 2];
var result = string.Format("big = {0}, small = {1}", big,small);
txt_resutl.Text = result;
方法二是知道大小的。
延伸问题: 能否利用上面的思路排序呢?
感觉可以,加上递归等等,再议。
MaraSun BJFWDQ
文章通过C#代码展示了如何在不使用显式比较语句的情况下进行比较操作。方法一利用Math.Sign函数确定数字的相对大小,方法二则能直接区分出较大和较小的数值。文章提出了这些方法可能应用于排序的思路,并表示可能需要结合递归等技术进一步探讨。

被折叠的 条评论
为什么被折叠?



