在C#找到中间位置

时间:2017-12-11 18:23:11

标签: c#

您好我已经尝试在codeasy.net上学习,我已经达到第4章的要求:

编写一个程序,从控制台读取新行中的三个数字,然后通过这三个数字的值输出中间值。

Example:
 >54
 >4456
 >2
 54

我已经尝试了所有我认识的初学者代码,但仍然是错误的。我目前的代码是:

using System;

namespace ConsoleInput
{
public class TheMiddle
{
    public static void Main(string[] args)
    {
          int a = int.Parse(Console.ReadLine());
          int b = int.Parse(Console.ReadLine());
          int c = int.Parse(Console.ReadLine()); 

       if (a < b && c < b)
       Console.WriteLine(a);
       if (a < b && b < c)
       Console.WriteLine(b);
       if (c < b && a < c)
       Console.WriteLine(c);
       if (a < b && c > b )
       Console.WriteLine(a);
       else
       if (a > b && c > a)
       Console.WriteLine(a);
       if (a > b && b > c)
       Console.WriteLine(b);
      if (c > b && b > a)
      Console.WriteLine(a);
       if (b > a && c > a)
       Console.WriteLine(c);

    }
 }
}

3 个答案:

答案 0 :(得分:3)

您需要进行更多比较。有3例。

if((a <= b && b <= c) || (c <= b && b <= a))
    Console.WriteLine(b);
if((b <= a && a <= c) || (c <= a && a <= b))
    Console.WriteLine(a);
if((a <= c && c <= b) || (b <= c && c <= a))
    Console.WriteLine(c);

基本上这个数字在另外两个中间,你必须检查两个数字在两边的情况。因此,例如b位于ac之间,或者ca之间。{/ p} >

答案 1 :(得分:1)

using System;

namespace ConsoleInput
{
public class TheMiddle
{
    public static void Main(string[] args)
    {
        int a = int.Parse(Console.ReadLine());
        int b = int.Parse(Console.ReadLine());
        int c = int.Parse(Console.ReadLine());

        int result;
        if (a < b)
        {
            if (c < a)
                result = a;
            else if (c > b)
                result = b;
            else
                result = c;
        }
        else
        {
            if (c < b)
                result = b;
            else if (c > a)
                result = a;
            else
                result = c;
        }

        Console.WriteLine(result);
    }
  }
}

这就是答案。

答案 2 :(得分:0)

你可以通过对你的值进行排序并取中间来做到这一点:

var list = new List<int>();
list.Add(a);
list.Add(b);
list.Add(c);
list.Sort();
var middleValue = list[list.Count/2];