-1

プログラムの出力に問題があります。総降水量、平均降水量、および降水量が最も少ない/最も多い月を見つけることになっています。プログラムは正常に動作しますが、実行すると常に 1 月が最低 (そうでない場合) として表示され、12 月が最高 (そうでない場合) として表示されます。私は自分が何を間違えたのかを知りたいと思っていました。

public class RainFall {
double[] rainArray = new double [SIZE]; 
public static final int SIZE = 12;



RainFall() {     
}
public RainFall(double[] r){
    rainArray = new double[SIZE];

}

public void setArrayValueAtIndex( double Val, int Index) {
    if (Index < SIZE - 1)
        return;

    rainArray[Index] = Val;
}

public double getTotal() {
    double total = 0;
    for (int i = 0; i < SIZE; i++){
        total += rainArray[i];
    }

    return total;
}

public String getMonth ( int monthIndex) {
    switch( monthIndex )
    {
        case 0 : return "January";
        case 1 : return "February";
        case 2 : return "March";
        case 3 : return "April";
        case 4 : return "May";
        case 5 : return "June";
        case 6 : return "July";
        case 7 : return "August";
        case 8 : return "Septemeber";
        case 9 : return "October";
        case 10 : return "November";
        case 11 : return "December";
        default : return "Error";
    }

}


public double getAverage(){
    return (getTotal() / SIZE);
}

public String getMost(){
    int mostRain = 0;
    for (int i = 1; i < SIZE; i++)
    {
       if (rainArray[i] > rainArray[mostRain])
           mostRain = i;
    }
    return getMonth( mostRain );

}

public double getMostValue(){
    int mostRain = 0;
    for ( int i = 1; i  < SIZE; i++) {
        if (rainArray[i] < rainArray[mostRain])
        mostRain = i; 
    }
    return rainArray[mostRain];

}

public String getLeast(){
    int leastRain = 0;
    for ( int i = 1; i < SIZE; i++ ) {
        if ( rainArray[i] < rainArray[leastRain])
            leastRain = i;
    }

    return getMonth( leastRain );

}

public double getLeastValue(){
    int leastRain = 0;
    for ( int i = 1; i < SIZE; i++) {
        if (rainArray[i] < rainArray[leastRain])
         leastRain =  i;
    }

    return rainArray[leastRain];
}
        }

このプログラムには 2 つの部分がありますが、問題はこの部分にあると確信しています。

4

2 に答える 2

3
public double getMostValue(){
    int mostRain = 0;
    for ( int i = 1; i  < SIZE; i++) {
        if (rainArray[i] < rainArray[mostRain])
        mostRain = i; 
    }
    return rainArray[mostRain];
}

これにより、最小値が検出されます。<を に交換する必要があります>

于 2013-05-10T09:22:55.170 に答える