1

これは私をかなり混乱させましたが、非常に興味深いものでもあります。

配列内の 9 つの要素のグリッドをループし、それらすべてに 1/9 を掛けます。次に、これらの 9 つの要素の合計を求め、個々の要素を合計として計算された値に置き換えます。これが終わったら、次の 9 つの要素に進みたいと思います。明確にするために、以下のコードで 9 つの要素すべてを myVal に変更します。

これまでのところ、ループビット内にループがありますが、戻って各値をそれらすべての合計に置き換える方法がわかりません。これが私のコードです:-

 previousx = 0; 
 previousy= 0;
for (int x = previousx; x < previousx+4; x++) {
    for(int y = previousy; y < previousy+4; y++) {
        y = y*(1/9);
        yVal += y;
      }
 }

もちろん、どんなアドバイスでも大歓迎です。

4

2 に答える 2

2

yであることに注意してintください。おそらく、タイプの変数を持ち、それに対して計算doubleを実行する必要があります。double

double myDouble;
for(int y = previousy; x < previousy+4; y++) {
   myDouble = y*((double)1/9);
   yVal += myDouble;
}

@ZouZou が述べたように、Java の数値のデフォルトは であるため、 0int1/9なります。片側を にキャストする必要がありますdouble

((double)1/9)

そして反対側は暗黙的にキャストされます。

また、内側のループが終了しないことに注意してください。

for(int y = previousy; x < previousy+4; y++) {
                       ↑
                 Should be y
于 2013-11-03T09:30:27.803 に答える
0
int i = 0;
int setNum = 1;
for (< exit condition >) {

    // Insert code here to find myVal
    // for current set of 9 elements

    for (; i < 9 * setNum; i++) {
        arr[i] = myVal;
    }
    setNum++;
}

編集:arr2D配列の場合

for (int i = 0; i < arr.length; i++) {

    // Insert code here to find myVal
    // for current set of 9 elements

    for (int j = 0; j < 9; j++) {
        arr[i][j] = myVal;
    }
}
于 2013-11-03T09:50:52.317 に答える