-1
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(Newline)2. 45Mark...など。

ユーザーがスキージャンパーを入力するたびに、すべての距離が降順で並べ替えられたリストが印刷されます。スキージャンパーの名前とその距離の両方の配列を作成しましたが、int配列の最初の要素を文字列配列の最初の要素に接続する方法と、各反復でこれを正しく並べ替える方法に問題があります。 。その仕事のためにバブルソートを作成しようとしましたが、間違った結果が得られます。

4

1 に答える 1

1

静的メソッドArray.Sort()のオーバーロードを見てください-それはあなたが望むことをすることができます。

また、SortedList <>クラスについて読む必要があります。これは、タスクにとっておそらくさらに優れたオプションであり、エンティティクラスを宣言するために(Fischermanによって)すでに投稿されたコメントを使用します。

宿題のヒントはこれで十分だと思います=)

于 2013-03-01T13:25:02.600 に答える