0

このコードを からjavaに変換しましたが、 (変数) とその関連コードC++を変換できません。booleanヘッダーを一緒に使用できるかどうか教えてください。

boolean[][] bombs = new boolean[M+2][N+2];
  for (int i = 1; i <= M; i++){
     for (int j = 1; j <= N; j++){
        bombs[i][j] = (Math.random() < p);
    }
}
  for (int i = 1; i <= M; i++) {
     for (int j = 1; j <= N; j++){
        if (bombs[i][j]) cout<<"* ";
        else             cout<<". ";
    }
     cout<<endl;
  }
  int[][] sol = new int[M+2][N+2];
  for (int i = 1; i <= M; i++)
     for (int j = 1; j <= N; j++)
        for (int ii = i - 1; ii <= i + 1; ii++)
           for (int jj = j - 1; jj <= j + 1; jj++)
              if (bombs[ii][jj]) sol[i][j]++;

  cout<<endl;

  for (int i = 1; i <= M; i++) {
     for (int j = 1; j <= N; j++)
        if (bombs[i][j]) cout<<"* ";
        else             cout<<sol[i][j] + " ";
     cout<<endl;
  }
4

2 に答える 2

2

私はあなたのためにコードを書きません (宿題のようなにおいがします)、そしてそれらのループについてコメントすることさえしません。

いくつかの問題:

  1. booleanboolc ++で綴られています

  2. 可変長配列が必要な場合は、 を使用するかstd::vector、生のポインターを使用して配列構文を取得する必要があります (ただし、それらを削除することを忘れないでください)

  3. 余談T[] fooですが、c++ では正しくありません。静的配列が必要な場合は、T foo[]

また、中括弧や演算子間のスペースを使用せずに非常に高密度の C++ コードを記述できるからといって、そうすべきであるとは限りません。

Can vs. should は、優れた C++ の非常に重要な部分です。他の多くの制限の厳しい言語 (Java など) よりもはるかに重要です。</soapbox>

于 2013-01-16T12:16:56.993 に答える
0

boolデータ型を使用する必要があります。このためにヘッダーファイルを使用する必要はありません。

于 2013-01-16T12:16:46.620 に答える