将Java程序转换为C ++

时间:2013-01-16 12:10:12

标签: java c++

我已将此代码从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;
  }

2 个答案:

答案 0 :(得分:2)

我不会为你编写代码(闻起来像家庭作业),甚至不会开始评论那些循环。

一些问题:

  1. boolean在c ++中拼写为bool

  2. 如果你想拥有可变长度数组,你必须使用std::vector,或者你可以使用原始指针来获取数组语法(但不要忘记删除它们

  3. 顺便说一下,T[] foo在c ++中不正确。如果你想要一个静态数组,那就是T foo[]

  4. 另外,仅仅因为你可以编写非常密集的c ++代码而没有操作符之间的大括号或空格并不意味着你应该

    can vs should是优秀c ++的一个非常重要的部分 - 远远超过许多其他更严格的语言(例如Java)。 </soapbox>

答案 1 :(得分:0)

您应该使用bool数据类型。您不需要为此使用任何头文件。