C语言学习记录——找数组中的鞍点

简介: C语言学习记录——找数组中的鞍点

C语言中 鞍点的定义

指一个矩阵中,即该位置上的元素在该行上最大,在该列上最小。


一个二维数组可能没有鞍点。


例如:1,2,3


          4,5,6


          7,8,9


该矩阵中,鞍点为3所在的位置。


即数组坐标[ 0 ] [ 2 ],在第一行第三列中。

代码的实现

 
#include <stdio.h>
int main()
{
  int arr[3][3] = { {50,40,30}, {60,80,90}, {70,100,120} };
  int a, b, max = 0, row = 0, flag = 0;//a为数组的行数下标,b为数组的列数下标
  //如果找到了鞍点就给flag赋值为1
  for (a = 0; a < 3; a++)
  {
    max = arr[0][0];
    for (b = 0; b < 3; b++)
    {
        //找出一行中的最大值,并赋值为max
      if (arr[a][b] > max)
      {
        max = arr[a][b];
        row = b;
        //row记录最大值所在的列
      } 
    }
    //判断max是否为该列上最小的元素
    for (b = 0 ; b < 3 ;b++)
    {
      if (max > arr[b][row])
      {
        break;
      }
    }
    //如果比较到一半跳出了循环,说明max不是该列最小
        //如果可以全部比较完,即b = 3时,说明max为当列最小。
    if (b == 3)
    {
      printf("该数组存在鞍点:%d\n在数组第%d行 第%d列\n", max, a + 1, row + 1);
      flag = 1;
      break;
    }
  }
  if (flag != 1)
    printf("该数组不存在鞍点\n");
  return 0;
}


代码运行结果

思路分析图解

目录
相关文章
|
12天前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
19 1
TU^
|
4天前
|
存储 编译器 程序员
C语言之数组
C语言之数组
TU^
11 1
|
4天前
|
存储 程序员 编译器
【C语言基础】:数组
【C语言基础】:数组
|
12天前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
12 1
|
12天前
|
存储 算法 安全
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
10 0
|
12天前
|
程序员 C语言 C++
C语言学习记录——动态内存习题(经典的笔试题)、C/C++中程序内存区域划分
C语言学习记录——动态内存习题(经典的笔试题)、C/C++中程序内存区域划分
10 0
|
12天前
|
C语言
C语言学习记录——动态内存开辟常见的错误
C语言学习记录——动态内存开辟常见的错误
10 1
|
12天前
|
存储 C语言
C语言学习记录——通讯录(动态内存)
C语言学习记录——通讯录(动态内存)
9 0
|
12天前
|
C语言
C语言学习记录——通讯录(静态内存)
C语言学习记录——通讯录(静态内存)
13 2
|
12天前
|
存储 C语言
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
C语言学习记录——联合体(共用体、特点、用法、联合体大小计算)
13 2