|
发表于 2023-12-7 17:02:16
|
显示全部楼层
首先,我们可以定义一个3*4的二维数组来存储输入的数字矩阵。然后,我们需要遍历每一行,找出每一行中的最大值,并记录下它的列索引。接着,我们再遍历每一列,找出每一列中的最小值,并记录下它的行索引。最后,我们比较每个点的行索引和列索引是否相等,如果相等,则输出该鞍点的值。
下面是一份C语言代码示例:
- #include <stdio.h>
- int main() {
- int matrix[3][4];
- int i, j;
- int max_row, min_col;
- int saddle_point = 0;
- // 输入数字矩阵
- printf("请输入数字矩阵(3行4列):\n");
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 4; j++) {
- scanf("%d", &matrix[i][j]);
- }
- }
- // 寻找鞍点
- for (i = 0; i < 3; i++) {
- max_row = 0;
- for (j = 1; j < 4; j++) {
- if (matrix[i][j] > matrix[i][max_row]) {
- max_row = j;
- }
- }
- min_col = 0;
- for (j = 1; j < 3; j++) {
- if (matrix[j][min_col] < matrix[i][min_col]) {
- min_col = j;
- }
- }
- if (max_row == min_col) {
- printf("鞍点的值为:%d\n", matrix[i][max_row]);
- saddle_point = 1;
- }
- }
- if (!saddle_point) {
- printf("NO\n");
- }
- return 0;
- }
复制代码
代码中,我们使用两个变量`max_row`和`min_col`分别记录每一行和每一列的最大值和最小值的索引。然后,我们使用两个嵌套的循环来遍历数组,找到每一行的最大值和每一列的最小值。最后,我们比较`max_row`和`min_col`的值,如果相等,则输出该鞍点的值。如果没有找到鞍点,那么`saddle_point`仍为0,我们输出"NO"字样。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|