0

基本的に、私は double を整数で機能させようとしていますが、明らかな何かが欠けている可能性がありますが、 highValueコードが返されると、「精度が失われる可能性があります。必須: int、見つかった: double」というエラーが表示されます。 "。コメントに関する限り、それは私が取っているクラスのためのものです. コードは次のとおりです。

package pj701;

public class PJ70103 {

     public static void main(String[] args)
    {   //DO NOT CHANGE ANYTHING IN THE MAIN()
        double[] x = { 11.11, 66.66, 88.88, 33.33, 55.55 };
        double[] y = { 9, 6, 5, 8, 3, 4, 7, 4, 6, 3, 8, 5, 7, 2 };
        double[] z = { 123, 400, 765, 102, 345, 678, 234, 789 };

        int index = FindIndexHighest (x);

        System.out.printf( "%s%5d%s%8.2f\n", "Array x:  element index = " ,  index,
                "  element contents = ", x[index] );

        index = FindIndexHighest (y);
        System.out.printf( "%s%5d%s%8.2f\n", "Array y:  element index = " ,  index,
                "  element contents = ", y[index] );

        System.out.printf( "%s%5d%s%8.2f\n", "Array z:  element index = ",
                 FindIndexHighest (z),  "  element contents = ",
                 z[FindIndexHighest (z) ] );
}
 //======================================================
// put your method definition here - - ONE method
//======================================================

     public static int FindIndexHighest(double[] x)
     {
        double highValue = 0;
        for (int i = 1; i < x.length; i++)
        {
            if (x[i] > highValue)
                    {
                        highValue = x[i];
                    }
            else
            {
                highValue = highValue + 0;
            }

        }
        return highValue;
     }
}
4

2 に答える 2

0

課題の要件をもう一度確認する必要があると思います。要求されているのは値ではなく、渡された配列内のこの値のインデックスです。

コンパイラの警告に関しては、暗黙的にdoubleをintにキャストしようとすると、持っていた情報の一部が失われる可能性があることを意味します。たとえば、double d = 3.5; int i = d;結果はi == 3になります。したがって、小数点以下の情報は失われます。これは、コンパイラが警告していることです。警告を取り除くには、たとえばint i = (int)d;上記の例のように、明示的なキャストを発行します。

于 2012-07-14T22:06:40.680 に答える
0

メソッドを正しく実装していないため、エラーが発生しています。最高のインデックス(int)ではなく、最高の(double) を返しています。最高値を持つ要素のインデックスを返す必要があります。

また、配列の最初のインデックスはインデックス 1 ではなくインデックス0 であることにも注意してください。

于 2012-07-14T22:02:39.380 に答える