0

我已将此代码从转换为javaC++但我无法转换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. booleanbool用c++拼写

  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 回答