c语言山顶元素上下左右斜对角代码
时间: 2024-09-30 19:08:50 浏览: 31
C语言实现3*3数组对角线之和示例
5星 · 资源好评率100%
在C语言中,寻找数组(矩阵)中的“山顶”元素通常意味着找到数组中具有最大值并且其周围(上、下、左、右四个方向)的元素都小于它的情况。这里有一个简单的算法可以实现这个功能:
```c
#include <stdio.h>
int find_peak(int arr[ROW][COL], int row, int col) {
// 检查边界条件
if (row < 0 || row >= ROW || col < 0 || col >= COL)
return -1; // 如果越界,返回-1表示不存在山顶
// 检查当前元素是否比周围的所有元素大
if (arr[row-1][col] <= arr[row][col] &&
arr[row+1][col] <= arr[row][col] &&
arr[row][col-1] <= arr[row][col] &&
arr[row][col+1] <= arr[row][col])
return arr[row][col]; // 返回山顶元素
return -1; // 如果没有找到满足条件的元素,继续搜索或返回-1
}
// 主函数示例
int main() {
const int ROW = 4;
const int COL = 4;
int arr[ROW][COL] = {{9, 8, 7, 6},
{8, 5, 4, 3},
{7, 4, 2, 1},
{6, 3, 2, 1}};
int peak = find_peak(arr, ROW-1, COL-1); // 从右下角开始查找
if (peak != -1)
printf("山顶元素(右下角): %d\n", peak);
else
printf("找不到山顶元素.\n");
return 0;
}
```
在这个例子中,`find_peak`函数接收一个二维数组(矩阵)、行和列作为输入,然后递归地检查每个位置直到找到山顶元素。如果数组大小(ROW * COL)不是正方形,你可能需要稍微调整边界检查。
阅读全文