c - 如何检查矩阵中的哪些行和列等于哪些行和列
问题描述
我有一个练习打印有多少对索引 (i, j) 在第 i 行和第 j 列中只有一个并打印所有对例如
1 1 1
1 0 0
1 1 1
1 1 1
所以我必须打印出 (0, 0); (2, 0); (3, 0) 然后打印出对数。
练习是在 C 中这是我到目前为止所拥有的
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
if(A[i][j] == 1 && A[i+1][j+1] == 1){
br++;
printf("(%d, %d)\n",i,j);
}
}
}
printf("%d",br);
解决方案
在该代码中,您只是遍历矩阵中的每个元素并检查它是否等于 1,并且对角相邻的元素(向右然后向下移动)也等于 1。该输出不会是预期的输出,它只会给出 (2,0) 和 (2,1) 作为结果,并且非常重要:分段错误。
请注意,当您在最后一行/列中时,您正在检查元素和对角右下的元素,该元素在矩阵的边界之外。
有许多可能的解决方案,但是对于每个元素,您应该检查它所属的整个行和列(使用 2 个循环)并检查所有元素是否都是一个。
推荐阅读
- python - 如何在 python 中使用内核 [3,3] 实现高斯滤波器?
- linux - 通过 EC2 内的元数据授权 AWS CLI 的用户权限
- vue.js - 是否有可能在 CkEditor 上更改默认文本“已连接的用户/s”
- r - 如何将特定列表元素解压缩到 R 中的数据框中?
- ios - 从 TableView 中的另一个类单元格中重新加载数据
- javascript - 在 React ParticleJS 中为 div 元素添加样式
- vscode-remote - 从命令行附加到现有容器
- javascript - 如何通过比较到期日期是否已过来检查用户订阅是否已过期
- python - 解包嵌套记录时出现 KeyError
- r - 拉出单词后的下一个数字 - R regex