我已将此代码从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;
}
答案 0 :(得分:2)
我不会为你编写代码(闻起来像家庭作业),甚至不会开始评论那些循环。
一些问题:
boolean
在c ++中拼写为bool
如果你想拥有可变长度数组,你必须使用std::vector
,或者你可以使用原始指针来获取数组语法(但不要忘记删除它们
顺便说一下,T[] foo
在c ++中不正确。如果你想要一个静态数组,那就是T foo[]
另外,仅仅因为你可以编写非常密集的c ++代码而没有操作符之间的大括号或空格并不意味着你应该。
can vs should是优秀c ++的一个非常重要的部分 - 远远超过许多其他更严格的语言(例如Java)。 </soapbox>
答案 1 :(得分:0)
您应该使用bool数据类型。您不需要为此使用任何头文件。