-2

という名前の int 変数nPositiveと、作成されて に割り当てられた int の 2 次元配列が与えられたとしa2dます。2 次元配列全体で 0 より大きいすべての要素の数を計算し、その値を に代入するステートメントをいくつか作成しますnPositive

コード:

for(int i=0; i<a2d.length; i++){
    int nPositive;
    for(int j=0; j<a2d[a2d.length-1].length; j++) {
        if(a2d[i][j] > 0) {
            nPositive = a2d[i][j];
        } 
    }
}

コンパイルエラーがあります。なんで?

4

4 に答える 4

0

iiner サイクルが正しくありません:

for(int j=0; j<a2d[i].length; j++){
于 2013-03-03T05:16:21.480 に答える
0

初期化していませんnPositive

// make nPositive a global variable
int nPositive = 0;

for(int i=0; i<a2d.length; i++){
  for(int j=0; j<a2d[a2d.length-1].length; j++) {
    if(a2d[i][j] > 0) {
        nPositive += a2d[i][j]; // add the value into nPositive as you go through the array
        } 
    }
}
于 2013-03-03T05:16:56.403 に答える
0

これは codeLab に関する質問の 1 つだと思います。nPositive を 0 で適切に初期化し、正の整数ごとにインクリメントするだけです。それが出力に関連して彼らが探しているすべてです。したがって、コードは次のようにする必要があります。

    nPositive = 0;
for (int i = 0; i < a2d.length; i++) 
{
    for (int j = 0; j < a2d[i].length; j++) 
    {
        if (a2d[i][j] > 0) 
        {
            nPositive++;
        }
    }
}
于 2016-11-19T05:15:15.240 に答える
0

テストしたところ、コードにコンパイルエラーはありません...

 for(int j=0; j<a2d[a2d.length-1].length; j++){//

長さを a2d[10][10] とします。

声明でa2d[a2d.length-1].length ,is equal a2d[10-1].length ,is equal a2d[9].length=>10

あなたのアルゴは私にとってはうまく機能しています。エラーは見つかりませんでし た。ここに私のテストコードがあります

    public class A2dTest {

  public static void main(String[] arr) {
            int[][] a2d = new int[10][10];
            for (int i = 0; i < 10; i++) {
                for (int j = 0; j < 10; j++) {
                    a2d[i][j] = (int) (Math.random() * 100) + 1000000;// all positives
                }
            }
            for (int i = 0; i < a2d.length; i++) {
                int nPositive = 0;
                for (int j = 0; j < a2d[a2d.length - 1].length; j++) {
                    if (a2d[i][j] > 0) {
                        nPositive = a2d[i][j];
                         System.out.println("nPositive=" + nPositive);
                    }}
            }
        }
    }
于 2013-03-03T05:44:31.547 に答える