黑马程序员技术交流社区

标题: 利用三元运算符 对三个数字进行排序输出 [打印本页]

作者: §風過無痕§    时间: 2013-9-1 19:00
标题: 利用三元运算符 对三个数字进行排序输出
本帖最后由 §風過無痕§ 于 2013-9-2 09:00 编辑

如题:哪位大哥可以利用三元运算符对三个数字进行排序输出

Console.WriteLine("{0},{1},{2}",                    );

作者: 科大涛哥    时间: 2013-9-1 21:39
你看看能行不
namespace test11
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 70, b =94, c = 64;
            Console.WriteLine("{0},{1},{2}",
                (a >= b ? a : b) > c ? (a > b ? a : b) : c,
               a + b + c - ((a >= b ? a : b) > c ? (a > b ? a : b) : c) - ((a <= b ? a : b) < c ? (a < b ? a : b) : c),
                (a <= b ? a : b) < c ? (a < b ? a : b) : c);
            Console.ReadKey();
        }
    }
}
作者: 曹伟    时间: 2013-9-1 21:53
本帖最后由 就是我 于 2013-9-1 21:56 编辑

static void Main(string[] args)
        {
           int a = 8, b = 1, c = 12;

           int max= a > b ? (a > c ? a : c) : b > c ? b : (c > a) ? c : a;
           //int middle = (max == a) ? b > c ? b : c : (max == b) ? a > c ? a : c : (max == c) ? a > b ? a : b : c;
           // int middle = a > b ? a > c ? b > c ? b : c : a : c;
           int min = a < b ? (a < c ? a : c) : b < c ? b : (c < a) ? c : a;
           int middle =a+b+c-max-min;
         
           Console.WriteLine(max);
           Console.WriteLine(middle);
           Console.WriteLine(min);
           Console.Read();
        }

作者: 黑骏马    时间: 2013-9-2 02:36
本帖最后由 黑骏马 于 2013-9-2 02:47 编辑

最复杂的是中间值的计算,不过细心点还是可以写出正确的式子的
  1.         int a = 1, b = 2, c = 3;
  2.         Console.WriteLine("从大到小排列为:{0}、{1}、{2}",
  3.             a > b ? (a > c ? a : c) : (b > c ? b : c),//最大值
  4.             a > b ? (b > c ? b : (a > c ? c : a)) : (a > c ? a : (b > c ? c : b)),//中间值
  5.             a < b ? (a < c ? a : c) : (b < c ? b : c)//最小值
  6.             );
复制代码

下面的代码方便手动输入数字进行验证:
  1. static void Main(string[] args)
  2. {
  3.     while (true)
  4.     {
  5.         int a, b, c;
  6.         Console.WriteLine("请输入第一个数:");
  7.         a = Convert.ToInt32(Console.ReadLine());
  8.         Console.WriteLine("请输入第二个数:");
  9.         b = Convert.ToInt32(Console.ReadLine());
  10.         Console.WriteLine("请输入第三个数:");
  11.         c = Convert.ToInt32(Console.ReadLine());

  12.         Console.WriteLine("从大到小排列为:{0}、{1}、{2}",
  13.             a > b ? (a > c ? a : c) : (b > c ? b : c),//最大值
  14.             a > b ? (b > c ? b : (a > c ? c : a)) : (a > c ? a : (b > c ? c : b)),//中间值
  15.             a < b ? (a < c ? a : c) : (b < c ? b : c)//最小值
  16.             );

  17.         Console.WriteLine("按任意键重新开始。");
  18.         Console.ReadKey();
  19.     }
  20. }
复制代码




作者: §風過無痕§    时间: 2013-9-2 08:59
黑骏马 发表于 2013-9-2 02:36
最复杂的是中间值的计算,不过细心点还是可以写出正确的式子的。
下面的代码方便手动输入数字进行验证:。

{:soso_e179:}    说得非常对  就那中间值    计算得我头晕!

                    值得学习ing!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2