C++ 为什么这段代码会产生无限循环
我正在尝试测试扫雷游戏的许多测试用例 它导致了infinte循环,而我没有得到输出C++ 为什么这段代码会产生无限循环,c++,arrays,char,C++,Arrays,Char,我正在尝试测试扫雷游戏的许多测试用例 它导致了infinte循环,而我没有得到输出 #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m ; //cout<<"bug1"; char grid[n+2][m+2] ; string numbers="0123456789" ; memset(grid,
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m ;
//cout<<"bug1";
char grid[n+2][m+2] ;
string numbers="0123456789" ;
memset(grid,'0',sizeof grid);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
cin>>grid[i][j];
//cout<<"bug2";
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(grid[i][j]!='*'){
int counter=0;
for(int ii=i-1;ii<i+2;ii++){
for(int jj=j-1;j<j+2;jj++){
if(ii>=0 && jj>=0 && grid[ii][jj]=='*')
counter++;
}
}
grid[i][j]=numbers[counter];
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<grid[i][j] ;
}
cout<<endl ;
}
return 0;
}
#包括
使用名称空间std;
int main(){
int n,m;
cin>>n>>m;
//库特
举几个例子
举几个例子。听起来你可能需要学习如何使用调试器来逐步调试代码。有了一个好的调试器,你可以逐行执行你的程序,看看它偏离了你的预期。如果你要做任何编程,这是一个必不可少的工具。进一步阅读:我正在尝试调试这段代码不止1次我不知道为什么它会导致infinte循环听起来你可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,你可以一行一行地执行你的程序,看看它偏离了你的预期。如果你要做任何编程,这是一个必不可少的工具。进一步阅读:我正在尝试调试此代码超过1小时,我不知道为什么会导致infinte循环,这就是为什么使用有意义的变量名会有帮助。看起来像是输入错误(j
而不是jj
)。最好不要使用SO用户作为调试器;)我同意@NathanOliver关于使用调试器的建议。@Khaledoz:如果有帮助,你可以接受答案。:)idk为什么我的问题得到-1rate@Khaledooz:我没有否决这个问题,但是否决者可能认为你可以通过一个调试器来修复你的代码这就是为什么使用有意义的变量名会有帮助。看起来像是打字错误(j
而不是jj
)。最好不要使用SO用户作为调试器;)我同意@NathanOliver关于使用调试器的建议。@Khaledoz:如果有帮助,你可以接受答案。:)idk为什么我的问题得到-1rate@Khaledooz:我没有否决这个问题,但否决者可能认为您可以通过单步调试修复代码。
j<j+2 // in for(int jj=j-1;j<j+2;jj++){
i,n,j,m,ii,jj // No wonder if someone is not confused with this.