在没有 strcmp 的情况下比较 C 中的二维数组
Comparing Two Dimensional Arrays in C without strcmp
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');
......
以上是我的 do
-while
循环代码。
据我所知,当 while
中的条件为真时,程序应该 运行 再次从 do
.
假设我的理解是正确的,当temp[x][y]
不等于store[x][y]
时,程序应该让status = 'f'
继续循环。一旦 temp
和 store
相等,status = 't'
并且循环将结束。
我现在的问题是,虽然我能够执行循环,但即使 temp
和 store
相等,循环也不会结束。我做错了什么?
谢谢!
else{
status='t';
break;
}
将确保您不会覆盖曾经更改过的 status
。否则会被覆盖。
还有另一个检查里面的第一个 for 循环
if ( status == 't') break;
代码将是
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');
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');
......
以上是我的 do
-while
循环代码。
据我所知,当 while
中的条件为真时,程序应该 运行 再次从 do
.
假设我的理解是正确的,当temp[x][y]
不等于store[x][y]
时,程序应该让status = 'f'
继续循环。一旦 temp
和 store
相等,status = 't'
并且循环将结束。
我现在的问题是,虽然我能够执行循环,但即使 temp
和 store
相等,循环也不会结束。我做错了什么?
谢谢!
else{
status='t';
break;
}
将确保您不会覆盖曾经更改过的 status
。否则会被覆盖。
还有另一个检查里面的第一个 for 循环
if ( status == 't') break;
代码将是
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');