输出一个数组中最小的三个数值,分别输出到text1,text2,text3中。参考数据:
数组:(21,3,34,5,7,5,14,17,11,13)要求结果:
以上数组中最小的三个数值是“3,5,7”.
而不是“3,5,5”请写出代码来,谢谢!

解决方案 »

  1.   

    可以先排序,而后去除重复,以下是简单的示例:        Dim array1() As Integer = {21, 3, 34, 5, 7, 5, 14, 17, 11, 13}        Array.Sort(array1)
            For i = 0 To array1.Length - 2
                If array1(i) = array1(i + 1) Then
                    For j = i + 1 To array1.Length - 2
                        array1(j) = array1(j + 1)
                    Next
                End If
            Next        TextBox1.Text = array1(0)
            TextBox2.Text = array1(1)
            TextBox3.Text = array1(2)
      

  2.   

    楼上是.NET的代码吧. 数组自带排序功能, 而且这个自带的排序据说是强到离谱, 排序的时间居然比程序里数组循环一次的时间更短.
      

  3.   

    问题解决了。
    给大家介绍下 .NET LINQ 如何做。// 定义数组
    int[] a = { 20, 9, 11, 40, 43, 3, 5, 11, 13, 3, 7, 25, 2, 9, 18, 16 };
    // 真正的代码就 1 行:
    var result = (from n in a orderby n select n).Distinct().Take(3).ToList();
    // 输出
    foreach (int i in result)
        Console.WriteLine(i);结果:
    2
    3
    5