C读入一个n*m的矩阵,定义两个数是友好的,当且仅当他们位置相邻(上下左右)且值相同。求友好数对个数。
时间: 2024-12-30 16:40:43 浏览: 17
在C语言中,要计算一个n * m的矩阵中友好的数对个数,你可以采用遍历矩阵并检查相邻元素是否满足条件的方式来解决这个问题。以下是步骤的一个概览:
1. 定义一个二维数组表示矩阵,并声明两个整型变量`count`用于记录友好的数对个数。
2. 使用两层嵌套循环,外层循环遍历行(i),内层循环遍历列(j)。对于每个元素(matrix[i][j]),检查它与上一格、下一格、左边和右边的元素是否相等且相邻。
3. 如果找到一对相邻且相同的元素,将`count`加一。
4. 遍历结束后,`count`即为友好数对的数量。
下面是一个简单的伪代码示例:
```c
int matrix[n][m];
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (i > 0 && matrix[i - 1][j] == matrix[i][j]) { // 上方
count++;
}
if (i < n - 1 && matrix[i + 1][j] == matrix[i][j]) { // 下方
count++;
}
if (j > 0 && matrix[i][j - 1] == matrix[i][j]) { // 左边
count++;
}
if (j < m - 1 && matrix[i][j + 1] == matrix[i][j]) { // 右边
count++;
}
}
}
printf("友好的数对个数: %d\n", count);
```
阅读全文