下面的程序应该找到 n × n 矩阵的第一个全零行(如果有的话)。这是解决问题的正确方法吗,是否有另一种用 C 或任何一般语言来处理此代码的良好结构化方法?我正在尝试了解有关 goto 语句及其适当用途/替代方案的更多信息。感谢您的帮助!
int first_zero_row = -1; /* none */
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (A[i][j]) goto next;
}
first_zero_row = i;
break;
next: ;
}
最佳答案
我不反对在某些情况下使用goto
,但我认为可以这样重写:
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (A[i][j]) break;
}
if (j==n) { /* the row was all zeros */
first_zero_row = i;
break;
}
}
关于c - C 中的 goto 语句和替代项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667373/