显示的比较语句,例如 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