【发布时间】:2021-11-02 20:07:53
【问题描述】:
如果元素存在于第一行,则以下代码给出输出Found。
当我尝试搜索剩余行中存在的元素时,输出为Not Found。请帮我解决这个问题。
会话
Enter size
rows:2
columns:2
1 2 3 4
Enter Target:3
1 2
3 4
Not Found
预期输出
Found
代码如下:
#include <stdio.h>
void Search(int n, int m, int matrix[][n], int target) {
int i, j;
while (i < m) {
j = 0;
while (j < n) {
if (target == matrix[i][j]) {
printf("Found");
return;
}
j++;
}
i++;
}
printf("\nNot Found");
}
void main() {
int matrix[5][5];
int rows, col, target;
printf("Enter size\nrows:");
scanf("%d", &rows);
printf("\ncolumns:");
scanf("%d", &col);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &matrix[i][j]);
}
}
printf("\nEnter Target:");
scanf("%d", &target);
Search(col, rows, matrix, target);
}
【问题讨论】:
-
@user3121023 仍然得到相同的输出
-
矩阵尺寸
-
编辑问题以提供minimal reproducible example,包括所有输入的准确文本、观察到的输出以及预期的输出。显示完整的源代码,包括问题中当前代码中缺少的
#include <stdio.h>。还将void main()更改为int main(void)。
标签: arrays c matrix linear-search