当前位置:编程学习 > C#/ASP.NET >>

一个超级简单问题 请教

我初学C#遇到一道题 就是输入三个数 取中间值
用代码 怎么实现 --------------------编程问答-------------------- 动动脑筋就出来了啊,不行你头脑怎么想的,模拟一下就行了 --------------------编程问答-------------------- 什么叫中间的?
大小排行中间的?还是输入顺序中间的?
--------------------编程问答--------------------        System.Console.WriteLine("请输入3个数字");
            int a,b,c
            System.Console.WriteLine(a);
            System.Console.WriteLine(b);
            System.Console.WriteLine(c);
            if (a>b && a<c)
                System.Console.WriteLine(a);
            else if (b>a && b<c)
                System.Console.WriteLine(b);
            else if(c>a && c<b)
                System.Console.WriteLine(c);
我写的 但绝对是有问题,但不知道差在哪 --------------------编程问答-------------------- 取中间值
--------------------编程问答-------------------- 不知道你这个用户输入的三个值,是怎么分别赋到a,b,c三个变量里面去的 --------------------编程问答-------------------- 是啊我就是不知道用代码改如何实现 请帮帮忙 --------------------编程问答--------------------
引用 3 楼 fncmywife1 的回复:
      System.Console.WriteLine("请输入3个数字");
            int a,b,c
            System.Console.WriteLine(a);
            System.Console.WriteLine(b);
            System.Console.WriteLine(c);
            if (a>b && a <c)
                System.Console.WriteLine(a);
            else if (b>a && b <c)
                System.Console.WriteLine(b);
            else if(c>a && c <b)
                System.Console.WriteLine(c);
我写的 但绝对是有问题,但不知道差在哪

你写的绝对有问题,
第一个if 匹配的是b<a<c
第二个if 匹配的是a<b<c
第三个if 匹配的是a<c<b
那么b<c<a , c<a<b , c<b<a放在那里处理
--------------------编程问答-------------------- winform:

int a= int.parse(textbox1.text);
int b= int.parse(textbox2.text);
int c= int.parse(textbox3.text);
if(a>b)
  {a=a;}
else
{a=b}
if(a>c)
messagebox.show("最大值"+a.tostring());
else 
messagebox.show("最大值"+c.tostring());
--------------------编程问答-------------------- 可以先排序 在找中间那个数 对吧 
System.Console.WriteLine("请输入3个数字"); 
            int a,b,c 
            System.Console.WriteLine(a); 
            System.Console.WriteLine(b); 
            System.Console.WriteLine(c); 
if(a>b && a>c)
{
if (b>c)
{
console.WriteLine(a, b ,c);
else if (c>b)
{
console.WriteLine(a,c,b);
}
这是a 最大的时候 你再写b最大时 c 最大时 ;进行排序后在找中间的
}
} --------------------编程问答--------------------
           
            int a,b,c ;
           System.Console.WriteLine("Please input the first number!"); 
            a=Int32.Parse(System.Console.ReadLine()); 
             System.Console.WriteLine("Please input the second number!"); 
             b=Int32.Parse(System.Console.ReadLine()); 
             System.Console.WriteLine("Please input the third number!"); 
            c=Int32.Parse(System.Console.ReadLine()); 
            if (a>b && a <c) 
                System.Console.WriteLine(a); 
            else if (b>a && b <c) 
                System.Console.WriteLine(b); 
            else if(c>a && c <b) 
                System.Console.WriteLine(c);
--------------------编程问答-------------------- 把三个int型的数放到数组里,然后sort一下,输出中间的就ok了。。
不过楼主要输入的话不应该是System.Console.WriteLine
应该这样写:int a= int.parse(System.Console.ReadLine());
--------------------编程问答--------------------   public int GetMiddNum(int num1, int num2, int num3)
        {
            List<int> test = new List<int>();
            test.Add(num1);
            test.Add(num2);
            test.Add(num3);
            test.Sort();
            return test[1];
        } --------------------编程问答-------------------- 谢谢上面的朋友帮助 --------------------编程问答-------------------- 如果数据多其实用一些算法最简单  --------------------编程问答--------------------


 public static void Main()
        {
            double[] a = new double[] { 1, 9.2, 6.1 };
            Array.Sort<double>(a);
            foreach (double var in a)
            {
                Console.WriteLine(var);
            }
            Console.ReadKey();
        }

//输出

6.1
9.2

改知道怎么做了把


--------------------编程问答--------------------     class Program
    {
        static void Main(string[] args)
        {
            try
            {
       
                int[] invalue = new int[3];
                System.Console.WriteLine("请输入第一个值");
                invalue[0] = Convert.ToInt16(System.Console.ReadLine());

                System.Console.WriteLine("请输入第二个值");
                invalue[1] = Convert.ToInt16(System.Console.ReadLine());

                System.Console.WriteLine("请输入第三个值");
                invalue[2] = Convert.ToInt16(System.Console.ReadLine());
                //a,b,c
                InsertSort(invalue);
                System.Console.WriteLine("中间值是:" + invalue[1]);
            }
            catch 
            {
                System.Console.WriteLine("您的数据格式不正确!");
            }
        }
        #region 插入排序
        private static void InsertSort(int[] array, int i)
        {
            int tmp = array[i];
            int j = i;
            while (j > 0 && tmp < array[j - 1])
            {
                array[j] = array[j - 1];
                j--;
            }
            array[j] = tmp;
        }
        public static void InsertSort(int[] array)
        {
            for (int i = 1; i < array.Length; i++)
                InsertSort(array, i);
        }
        #endregion

    } --------------------编程问答--------------------     public static void Main()
    {    
        int a, b, c;
        Console.WriteLine("please input 3 numbers:");
        a = int.Parse(Console.ReadLine());
        b = int.Parse(Console.ReadLine());
        c = int.Parse(Console.ReadLine());
        ArrayList arr = new ArrayList();
        arr.Add(a);
        arr.Add(b);
        arr.Add(c);
        arr.Sort();
        Console.WriteLine("the middle one is :" + arr[1].ToString());
        Console.ReadLine();
   } --------------------编程问答--------------------
引用 16 楼 garfield_li 的回复:
class Program
     {
         static void Main(string[] args)
         {
             try
             {

                 int[] invalue = new int[3];
                 System.Console.WriteLine("请输入第一个值");
                 invalue[0] = Convert.ToInt16(System.Console.ReadLine());

                 System.Console.WriteLine("请输入第二个值");
                 invalue[1] = Convert.ToInt16(System.Console.ReadLine());

                 System.Console.WriteLine("请输入第三个值");
                 invalue[2] = Convert.ToInt16(System.Console.ReadLine());
                 //a,b,c
                 InsertSort(invalue);
                 System.Console.WriteLine("中间值是:" + invalue[1]);
             }
             catch
             {
                 System.Console.WriteLine("您的数据格式不正确!");
             }
         }
         #region 插入排序
         private static void InsertSort(int[] array, int i)
         {
             int tmp = array[i];
             int j = i;
             while (j > 0 && tmp  < array[j - 1])
             {
                 array[j] = array[j - 1];
                 j--;
             }
             array[j] = tmp;
         }
         public static void InsertSort(int[] array)
         {
             for (int i = 1; i  < array.Length; i++)
                 InsertSort(array, i);
         }
         #endregion

     }

很好,很仔细
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,