0

次のプログラムに中央値と標準偏差を追加する必要がありますが、どこから始めればよいかわかりません。何をしたいのかはわかっていますが、特に中央値はソートされた数値の後に来る必要があるため、それを実現する方法がわかりませんが、 void Median () として入れると、ソートされた配列が失われます。助けてください!どんな支援も大歓迎です:

import java.util.Scanner;
import javax.swing.*;
public class JScannerO
{
    public JScannerO(){}
    public JScannerO(int A)
    {
        HowMuch = A;
    }
    void GenerateNumbers()
    {
        int k,Hide;
        k = 0;
        while ( k < HowMuch )
        {
            Hide = (int) (Math.random() * 100);
            if ( Hide > 9 && Hide < 100 )
            {
                Hanson[k] = Hide;
                k++;
            }
        }
    }
    void DisplayNumbers()
    {
        int k;
        for ( k = 0; k < HowMuch; k++)
        {
            System.out.println("\t\tThe numbers are : " + Hanson[k]);
        }
    }
    void BiggestNumber()
    {
        int k,Biggest;
        Biggest = Hanson[0];
        for ( k = 0; k < HowMuch; k++)
        {
            if ( Biggest < Hanson[k] ) Biggest = Hanson[k];
        }
        System.out.println("\n\n\t\tThe biggest number is : " + Biggest);
    }
    void SmallestNumber()
    {
        int k,Smallest;
        Smallest = Hanson[0];
        for ( k = 0; k < HowMuch; k++)
        {
            if ( Smallest > Hanson[k] ) Smallest = Hanson[k];
        }
        System.out.println("\n\n\t\tThe Smallest number is : " + Smallest);
    }
    void Average()
    {
        int k,Sum;
        double Average;
        Sum = 0;
        for ( k = 0; k < HowMuch; k++)
        {
            Sum = Sum + Hanson[k];
        }
        Average = 1.0 * Sum / HowMuch;
        System.out.format("\n\n\t\tThe Average number is : %7.2f",Average);
    }
    void Sort()
    {
        int k,Hide;
        boolean DidISwap;
        DidISwap = true;
        while (DidISwap)
        {
            DidISwap = false;
            for ( k = 0; k < HowMuch - 1; k++)
            {
                if ( Hanson[k] > Hanson[k+1] )
                {
                    Hide = Hanson[k ];
                    Hanson[k] = Hanson[k+1];
                    Hanson[k+1] = Hide ;
                    DidISwap = true;
                }
            }
        }
        System.out.println("\n\n\n\t\tThe Sorted Numbers : \n");
    }
    private int HowMuch;
    private int[] Hanson = new int[100];
}

これは、呼び出しプログラムを使用して実行されます

4

1 に答える 1

0

あなたの質問がわかりません。

あなたのために仕事をするソートアルゴリズムがあります!

あなたはただ書くことができませんか?

public int median() { 
  Sort();
  return Hanson[Math.floor(Hanson/2)]; 
}

?

これにより、O(1) ではなく O(N) のコストがかかりますが、エラーが発生しにくく、必要なことを実行できます。特に、「ハンソン」配列のサイズは 100 しかないため、この時点では気にする必要はありません。 .

最後に、関数名は常にキャメルケースの小文字で表されます。つまり、Sort() ではなく sort() であり、Calculate_Something() やその他のバリアントではなく、calculateSomething() です。

このルールには例外はなく、コードが (はるかに) 読みやすくなります。Eclipse に CheckStyle をインストールすることを検討してください (http://eclipse-cs.sourceforge.net/)。これを書いているときにインタラクティブなスタイル ガイドが必要になります :-)

于 2012-10-26T02:04:45.533 に答える