C语言从n*m初始每格为0的情况下,找出1
时间: 2024-10-23 14:15:18 浏览: 39
在C语言中,从一个初始化为全零(n × m)的二维数组中找到第一个非零值(即1)的过程,可以使用循环结构遍历数组。你可以用两个嵌套的for循环来访问每个元素,检查其是否为1。如果找到1,立即返回其位置(行索引和列索引)。如果没有找到1,则表示整个数组都是0,可以添加一个标志变量或直接返回一个特殊标记,如`{-1, -1}`,表示找不到1。
以下是简单的示例代码:
```c
#include <stdio.h>
// 函数返回找到的第一个1的坐标,如果没找到则返回{-1, col = -1; // 初始化找到的第一个1的行和列
// 遍历整个数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (grid[i][j] == 1) { // 如果找到1
row = i;
col = j;
break; // 结束内层循环
}
}
if (row != -1) { // 如果已找到1,退出外层循环
break;
}
}
return (row != -1) ? (int){row, col} : {-1, -1};
}
// 测试代码
int main() {
int n = ...; // 行数
int m = ...; // 列数
int grid[n][m]; // 初始化全零数组
// 示例:设置某个元素为1
grid[1][1] = 1;
int position = find_first_one(grid);
if (position[0] != -1 && position[1] != -1) {
printf("Found first one at (%d, %d)\n", position[0], position[1]);
} else {
printf("No ones found in the array.\n");
}
return 0;
}
```
阅读全文