鱼C论坛

 找回密码
 立即注册
查看: 1928|回复: 2

暗点

[复制链接]
发表于 2023-12-7 17:02:16 | 显示全部楼层
首先,我们可以定义一个3*4的二维数组来存储输入的数字矩阵。然后,我们需要遍历每一行,找出每一行中的最大值,并记录下它的列索引。接着,我们再遍历每一列,找出每一列中的最小值,并记录下它的行索引。最后,我们比较每个点的行索引和列索引是否相等,如果相等,则输出该鞍点的值。

下面是一份C语言代码示例:
  1. #include <stdio.h>
  2. int main() {
  3.     int matrix[3][4];
  4.     int i, j;
  5.     int max_row, min_col;
  6.     int saddle_point = 0;
  7.     // 输入数字矩阵
  8.     printf("请输入数字矩阵(3行4列):\n");
  9.     for (i = 0; i < 3; i++) {
  10.         for (j = 0; j < 4; j++) {
  11.             scanf("%d", &matrix[i][j]);
  12.         }
  13.     }
  14.     // 寻找鞍点
  15.     for (i = 0; i < 3; i++) {
  16.         max_row = 0;
  17.         for (j = 1; j < 4; j++) {
  18.             if (matrix[i][j] > matrix[i][max_row]) {
  19.                 max_row = j;
  20.             }
  21.         }
  22.         min_col = 0;
  23.         for (j = 1; j < 3; j++) {
  24.             if (matrix[j][min_col] < matrix[i][min_col]) {
  25.                 min_col = j;
  26.             }
  27.         }
  28.         if (max_row == min_col) {
  29.             printf("鞍点的值为:%d\n", matrix[i][max_row]);
  30.             saddle_point = 1;
  31.         }
  32.     }
  33.     if (!saddle_point) {
  34.         printf("NO\n");
  35.     }
  36.     return 0;
  37. }
复制代码

代码中,我们使用两个变量`max_row`和`min_col`分别记录每一行和每一列的最大值和最小值的索引。然后,我们使用两个嵌套的循环来遍历数组,找到每一行的最大值和每一列的最小值。最后,我们比较`max_row`和`min_col`的值,如果相等,则输出该鞍点的值。如果没有找到鞍点,那么`saddle_point`仍为0,我们输出"NO"字样。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-11 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表