在C语言中,现有一个5x5的二维数组,其某一列数据全为1,其一行数据全为1,其余数据全为0,编程找到两条线的交点
时间: 2024-10-10 21:05:40 浏览: 49
C语言第07章-一维数组和二维数组1完整.pptx
在C语言中,你可以通过遍历二维数组来寻找这两条特殊线的交点。这里假设你要找的是行数为所有1的那行(因为列全是1的话,整个列都是交点),以及任意非零元素所在的列的交叉点。下面是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 5
void findIntersection(int arr[ROWS][COLS]) {
int row_of_ones = -1; // 存储行全为1的位置
for (int i = 0; i < ROWS; i++) {
if (arr[i][0] == 1) { // 初始检查第一列是否有全1的行
row_of_ones = i;
break;
}
}
if (row_of_ones != -1) { // 如果找到了全1的行
int column_of_non_zero = -1; // 存储第一个非零元素所在列
for (int j = 0; j < COLS; j++) {
if (arr[row_of_ones][j] != 0) {
column_of_non_zero = j;
break;
}
}
if (column_of_non_zero != -1) { // 如果找到了非零元素
printf("交点坐标: (%d, %d)\n", row_of_ones, column_of_non_zero);
} else {
printf("全1行上没有找到非零元素\n");
}
} else {
printf("找不到全1的行\n");
}
}
int main() {
int array[ROWS][COLS] = {{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 1, 1, 1},
{0, 0, 1, 1, 1}};
findIntersection(array);
return 0;
}
```
当你运行这个程序时,它会打印出交点的坐标(如果存在)。如果没有找到满足条件的行,相应的提示信息将显示。
阅读全文