本关任务:编写一个程序,求一个4行4列的整数矩阵的鞍点。注意:一个矩阵可能有0到多个鞍点。 提示:可以考虑用反证法实现,即先假设矩阵中目标元素是鞍点,如果发现该元素所在行中还有元素比其大,或者该元素所在列中还有元素比其小,则不是鞍点。用C语言写
时间: 2024-02-03 14:14:31 浏览: 204
以下是一个求解4行4列整数矩阵鞍点的程序,采用了反证法:
```c
#include <stdio.h>
int main() {
int matrix[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int i, j, k, is_saddle_point;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
is_saddle_point = 1;
for (k = 0; k < 4; k++) {
if (matrix[i][j] < matrix[i][k] || matrix[i][j] > matrix[k][j]) {
is_saddle_point = 0;
break;
}
}
if (is_saddle_point) {
printf("Saddle point found at (%d, %d): %d\n", i, j, matrix[i][j]);
}
}
}
return 0;
}
```
该程序首先定义了一个4行4列的整数矩阵,然后遍历每一个元素,假设当前元素为鞍点,然后判断该元素所在行是否有比它大的元素,以及该元素所在列是否有比它小的元素。如果有,就说明当前元素不是鞍点,继续遍历下一个元素;如果没有,就说明当前元素是鞍点,输出其位置和值。
阅读全文