在C#中找到中间位置

  • 本文关键字:中间 位置 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例。

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);

基本上,数字位于其他两个的中间,您必须检查其他两个数字在两侧的情况。因此,例如,如果bac之间,则在中间位于中间,或以该顺序为ca之间。

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);
    }
  }
}

这是答案。

您可以通过对价值排序并进行中间:

来做到这一点:
var list = new List<int>();
list.Add(a);
list.Add(b);
list.Add(c);
list.Sort();
var middleValue = list[list.Count/2];

最新更新