打印已排序的数组

时间:2013-03-01 12:11:51

标签: c# arrays list sorting loops

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SkihopperOpgave
{
class Program
{
    static void Main(string[] args)
    {
        string deltagerNavn = " ";
        int hopLængde = 0;
        string[] deltager = new string[5];
        int[] hopLængder = new int[5];
        string[] pladsNumre = new string[5] { "1. ", "2. ", "3. ", "4. ", "5. " };

        for (int i = 0; i < deltager.Length; i++)
        {
            Console.Write("Indtast deltagernavn: ");
            deltager[i] = Console.ReadLine();

            Console.Write("Indtast hoplængde for deltager: ");
            hopLængder[i] = Convert.ToInt32(Console.ReadLine());


            for (int j = hopLængder.Length-1; j>0; j--) //Bubblesort
            {
                for (int k = 0; k < j; k++)
                {
                    int b = hopLængder[k];
                    hopLængder[k] = hopLængder[k+1];
                    hopLængder[k+1] = b;
                }
            }
            for (int s = 0; s < deltager.Length; s++)
            {
                Console.WriteLine(pladsNumre[s] + hopLængder[s] + deltager[s]);
            }


        }

    }
}
}

我正在尝试通过对跳远距离(hoplængde)进行排序来创建一个打印出滑雪跳线(deltagere)排序列表的程序。发生的事情是用户首先键入滑雪跳线的名称,然后输入跳跃距离。然后程序应该以这种格式打印出一个排序列表:1。80 John(换行符)2。45 Mark ...等。

每次用户输入滑雪跳线时,都应打印列表,所有距离按降序排列。 我已经为滑雪跳线的名称和它们的距离创建了一个数组,但是我在如何将int数组中的第一个元素与字符串数组中的第一个元素连接以及如何正确连接方面遇到了麻烦在每次迭代中对此进行排序。 我尝试为这项工作创建一个bubblesort,但结果不对。

1 个答案:

答案 0 :(得分:1)

看一下静态方法Array.Sort()的重载 - 它可以做你想要的。

您还应该阅读有关SortedList&lt;&gt; class - 它可能是你的任务更好的选择,并使用已发布的评论(由Fischerman)来声明一个实体类。

我认为这对家庭作业有足够的暗示=)