数据结构中的求一个矩阵的马鞍点
请编写一个完整的程序,如果矩阵A中存在这样的一个元素A[i,j]满足条件A[i,j]是第i行的值最小的元素,且又是第j列中最大的元素,则称之为该矩阵的一个马鞍点。
代码如下:

#include<stdio.h>
#define m 3
#define n 3
/*求矩阵A中的马鞍点*/
void Get_Saddle(int A[m][n])
{/*基本思想:1.首先它是一个二维数组,需要遍历每一行,需要一个for循环,且需要放在最外层2.然后,依次从每一行中横向遍历到最后(直到本行结束),找到最小值1)又需要一层循环,循环结束至这一行中的最后位置,2)找的最小值,记录最小值所在列数3.找到最小值之后,用一个变量minCol记下当前列数4.顺这当前列数竖向遍历(从当前列第一行开始向下)判断是否是最大的,如果是,则这个元素就是整个矩阵的马鞍点1)又需要一个循环,用来遍历竖向遍历*/int i,j,k;int flag,min,minCol;for(i=0;i<m;i++){//求一行中的最小值min = A[i][0];//先假设每行中第一个元素为最小值minCol = 0;for(j=0;j<n;j++)//每行元素向后遍历{if(A[i][j] < min)//如果遇到比第一个元素小的{min =  A[i][j];//使最小值为当前行当前列minCol =j;//标记出当前列数}}/*判断这个最小值是否是马鞍点,即是不是所在列的最大值*/flag = 1;for(k=0;k<m;k++){if(min < A[k][minCol])//如果当前行的最小值小于所在列中的值,即这个数不是马鞍点{flag = 0;//标记变量置零break;//因为已经找到了这个点不是马鞍点,所以无需再去比较,直接返回}}if(flag)//如果成立,则表示找到了马鞍点,输出{printf("Found a saddle element !\nA[%d][%d] = %d\n",i+1,minCol+1,A[i][minCol]);}}}
int main(void)
{/*初始化A[m][n]*/int A[m][n] = {1,2,3,4,5,6,7,8,9};for(int i=0;i<m;i++){for(int j = 0;j<n;j++)printf("%d  ",A[i][j]);printf("\n");}Get_Saddle(A);getchar();return 0;
}

求一个矩阵中的马鞍点(c语言实现)相关推荐

  1. 一些值得记录的题目(将数组中相同的数据删除、判断n 阶方阵是否对称、寻找矩阵中的马鞍点、将前面各数顺序后移 m 位,最后 m 个数变成最前m 个数并输出、将一长整型数转换为十六进制,以字符串形式输出)

    1.设数组中的数据已经按照由小到大的顺序存放,请将数组中相同的数据删除,仅保留一个,然后以每行3个输出数组元素. #include<stdio.h> int main() {int arr ...

  2. 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)

    一,题目: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3) ...

  3. 若在矩阵A中存在一个元素Aij,该元素是第i行元素中最大值并且又是第j列元素中最小值,则称此元素值为该元素的一个鞍点。假设以二维数组存储矩阵A,求该矩阵中的所有鞍点。

    #include <stdio.h> #include <stdlib.h> int main() {     int nh,nl,max,p,top=0;//max存储该行的 ...

  4. python找出矩阵中的马鞍点_矩阵的马鞍点

    #include #define n 4 //马鞍点是第I行值最小第J列值最大 void maxmin(int a[n][n]) { int i,j ,flag; int max[n],min[n]; ...

  5. 求一个矩阵的鞍点(即在行上最小而在列上最大的值)(C++编写)(循环与递归)

    算法经典题型1 求一个矩阵的鞍点(即在行上最小而在列上最大的值) 用到的算法 思想是 -循环与递归 博主用到的环境:Win7, CodeBlocks等. 一.代码 #include <iostr ...

  6. C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和

    C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...

  7. matlab矩阵绝对值,matlab怎么求一个矩阵所有元素的绝对值之和,看完就明白了

    有时候我们在使用matlab的时候,想求一个矩阵所有元素的绝对值之和,怎么求呢,下面来分享一下方法 工具/材料 matlab 求矩阵所有元素的绝对值之和 操作方法 01 第一步在我们的电脑上打开mat ...

  8. 求一个字符串中连续出现的次数最多的子串

    求一个字符串中连续出现的次数最多的子串.例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复 ...

  9. 求一个字符串中连续出现次数最多的子串

    http://blog.csdn.net/imcdragon/article/details/6838565解答二 http://hi.baidu.com/icyday315/item/040aada ...

最新文章

  1. 均值归一化_超越BN和GN!谷歌提出新的归一化层:FRN
  2. 应用系统怎么开启审计功能_win10系统开启分屏功能的设置方法
  3. C#中showDialog()与show()的区别(转)
  4. 英特尔的务实创新之路:实在做技术,赋能开发者 | InfoQ推荐
  5. button点击后变色_汽车改色膜新潮流,2021年流行渐变色
  6. 树的直径(51Nod-2602)
  7. Flink : The object probably contains or references non-serializable fields.
  8. 环境在c盘_程序员,拯救我的C盘
  9. 从零学ELK系列(七):Centos安装Filebeat(超详细图文教程)
  10. CentOS搭建Git服务器
  11. 悟道魔兽世界,《榜样魔兽》横空出世
  12. Spring IOC的三种主要注入方式?
  13. 微信小程序跳过第三方的_微信小程序工具 第三方平台
  14. SSMS(sql server管理工具)修改表不允许保存
  15. makefile编写rtl仿真脚本
  16. 编译SAM BA报错
  17. ubuntu-浏览caj文件
  18. 解析:浏览器事件冒泡及事件捕获
  19. 智能名片如何在会场营销落地
  20. 打印菱形图案c语言pta,C语言的考试题型

热门文章

  1. Vue2-父子组件传值
  2. Python中的三角函数总结
  3. 计算机小高考,中考缘何成了“小高考”
  4. python包_3_随机函数— random包
  5. 分布式信息处理利用计算机的,分布式的信息处理需要利用计算机的什么
  6. Linux Base VII 帮助命令
  7. 2020美容师(初级)作业考试题库及美容师(初级)操作证考试
  8. Linux内核学习(五):linux kernel源码结构以及makefile分析
  9. 苹果cms10的php.ini目录列表,苹果cmsV10采集插件 安装包(解压后查看教程)
  10. 自学Java整套资源