2017-11-18 11 views
0
없이
char status = 'f'; 
char arr1[11][11]; 
char arr2[11][11]; 
...... 

do{ 
...... 
    for(int x=0; x<11; x++){ 
    for(int y=0; y<11; y++){ 
     if(temp[x][y]!=store[x][y]){ 
      status='f'; 
      } 
     else{ 
      status='t'; 
      } 
     }} 
} 
while(status != 'f'); 
...... 

을 C에서 두 차원 배열을 비교하면 위의 do 내 코드입니다.을 strcmp

제 생각에 while의 조건이 참일 때 프로그램은 do에서 다시 실행되어야합니다.

temp[x][y]store[x][y]과 같지 않은 경우 내 이해가 정확하다고 가정하면 프로그램은 status = 'f'이되어야하며 루프가 계속됩니다. tempstore이 같으면 status = 't'이고 루프가 종료됩니다.

내 문제는 이제 내가 루프를 proc 할 수 있지만, tempstore이 같은 경우에도 루프가 종료되지 않는다는 것입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

감사합니다.

답변

0
else{ 
    status='t'; 
    break; 
} 

변경된 status을 덮어 쓰지 않도록하십시오. 그렇지 않으면 덮어 씁니다.

그리고 내가 사용하는 특정 디렉토리가 필요하십니까

do{ 
status = 't'; // denotes that they are equal intiially. 
...... 
    for(int x=0; x<11; x++) { 
     for(int y=0; y<11; y++) { 
      if(temp[x][y]!=store[x][y]) { 
       status='f'; // they are not equal 
      } 
     } 
     if(status == 'f') 
      break; 
    } 
} while(status == 'f'); 
+0

또한

if (status == 't') break;


코드에 대한 루프에 대한 첫번째 안에 다른 검사가 될 것'break'? – Raph

+0

지시문을 의미하는 것이 유감 스러운데 – Raph

+0

'do ... while' 루프가 필요합니다 ... 내가 제거한 경우 2d 어레이를 계속해서 또 어떻게 확인할 수 있습니까? – Raph