求一个矩阵中的马鞍点(c语言实现)
数据结构中的求一个矩阵的马鞍点
请编写一个完整的程序,如果矩阵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语言实现)相关推荐
- 一些值得记录的题目(将数组中相同的数据删除、判断n 阶方阵是否对称、寻找矩阵中的马鞍点、将前面各数顺序后移 m 位,最后 m 个数变成最前m 个数并输出、将一长整型数转换为十六进制,以字符串形式输出)
1.设数组中的数据已经按照由小到大的顺序存放,请将数组中相同的数据删除,仅保留一个,然后以每行3个输出数组元素. #include<stdio.h> int main() {int arr ...
- 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)
一,题目: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3) ...
- 若在矩阵A中存在一个元素Aij,该元素是第i行元素中最大值并且又是第j列元素中最小值,则称此元素值为该元素的一个鞍点。假设以二维数组存储矩阵A,求该矩阵中的所有鞍点。
#include <stdio.h> #include <stdlib.h> int main() { int nh,nl,max,p,top=0;//max存储该行的 ...
- python找出矩阵中的马鞍点_矩阵的马鞍点
#include #define n 4 //马鞍点是第I行值最小第J列值最大 void maxmin(int a[n][n]) { int i,j ,flag; int max[n],min[n]; ...
- 求一个矩阵的鞍点(即在行上最小而在列上最大的值)(C++编写)(循环与递归)
算法经典题型1 求一个矩阵的鞍点(即在行上最小而在列上最大的值) 用到的算法 思想是 -循环与递归 博主用到的环境:Win7, CodeBlocks等. 一.代码 #include <iostr ...
- C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和
C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...
- matlab矩阵绝对值,matlab怎么求一个矩阵所有元素的绝对值之和,看完就明白了
有时候我们在使用matlab的时候,想求一个矩阵所有元素的绝对值之和,怎么求呢,下面来分享一下方法 工具/材料 matlab 求矩阵所有元素的绝对值之和 操作方法 01 第一步在我们的电脑上打开mat ...
- 求一个字符串中连续出现的次数最多的子串
求一个字符串中连续出现的次数最多的子串.例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复 ...
- 求一个字符串中连续出现次数最多的子串
http://blog.csdn.net/imcdragon/article/details/6838565解答二 http://hi.baidu.com/icyday315/item/040aada ...
最新文章
- 均值归一化_超越BN和GN!谷歌提出新的归一化层:FRN
- 应用系统怎么开启审计功能_win10系统开启分屏功能的设置方法
- C#中showDialog()与show()的区别(转)
- 英特尔的务实创新之路:实在做技术,赋能开发者 | InfoQ推荐
- button点击后变色_汽车改色膜新潮流,2021年流行渐变色
- 树的直径(51Nod-2602)
- Flink : The object probably contains or references non-serializable fields.
- 环境在c盘_程序员,拯救我的C盘
- 从零学ELK系列(七):Centos安装Filebeat(超详细图文教程)
- CentOS搭建Git服务器
- 悟道魔兽世界,《榜样魔兽》横空出世
- Spring IOC的三种主要注入方式?
- 微信小程序跳过第三方的_微信小程序工具 第三方平台
- SSMS(sql server管理工具)修改表不允许保存
- makefile编写rtl仿真脚本
- 编译SAM BA报错
- ubuntu-浏览caj文件
- 解析:浏览器事件冒泡及事件捕获
- 智能名片如何在会场营销落地
- 打印菱形图案c语言pta,C语言的考试题型
热门文章
- Vue2-父子组件传值
- Python中的三角函数总结
- 计算机小高考,中考缘何成了“小高考”
- python包_3_随机函数— random包
- 分布式信息处理利用计算机的,分布式的信息处理需要利用计算机的什么
- Linux Base VII 帮助命令
- 2020美容师(初级)作业考试题库及美容师(初级)操作证考试
- Linux内核学习(五):linux kernel源码结构以及makefile分析
- 苹果cms10的php.ini目录列表,苹果cmsV10采集插件 安装包(解压后查看教程)
- 自学Java整套资源