다음 코드를 실행할 때 무한 루프가 발생했습니다. 블록으로 둘러싸인 그리드 내부에서 미리 정의 된 사각형은이 구현이 실행되지 않도록 시작됩니다. 광장은 방문해야 할 경우 1로 표시되고 방문한 경우 2로 표시됩니다. 솔루션을 찾을 수없는 것 같아서 도움이되는 몇 가지 힌트가 있습니다.홍수 채우기를 사용할 때 루프가 발생했습니다.
one_count=1;
while(one_count>0){
for(int i=0;i<24;i++){
for(int c=0;c<80;c++){
if(create[i][c]=='1'){
if(create[i-1][c]==' '){
create[i-1][c]='1';
}
if(create[i+1][c]==' '){
create[i+1][c]='1';
}
if(create[i][c-1]==' '){
create[i][c-1]='1';
}
if(create[i][c+1]==' '){
create[i][c+1]='1';
}
create[i][c]='2';
}
}
}
one_count=0;
for(int i=0;i<24;i++){
for(int c=0;c<80;c++){
if(create[i][c]=='1'){
one_count++;
}
}
}
}
첫 반복에서 create [-1]에 액세스하는 것처럼 보입니다. – matchdav
지적 해 주셔서 감사합니다! 명확화가 필요합니다. 시작 지점은 림에 착륙하지 않으며 채우기는 빈 공간 ('')이 아니라 X ('X')이므로 림의 한 점을 확인해서는 안됩니다. – Behemyth
one_count가 루프의 끝에서 0 일 수있는 방법은 분명하지 않습니다. 사각형의 초기 조건은 무엇입니까? – matchdav