/* 二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点

二维数组鞍点判断,要逐个要素进行确认,并用二维数组记录满足各要素时的坐标,

之后进行各性质重合对比来确定,也就是说,先分别找到各行的最大数字位置,和各列最小数字位置

再进行重合对比两性质下的坐标,一样,说明点重合,有鞍点,否则,没有鞍点*/

#include

#include

#include

int saddle_point(int **array){

int length = sqrt(sizeof(array)/ sizeof(int));//给出一个二维数组,求每一维长度,假如一维是a 那么用sizeof来求就是分母除以int * a

const int rowlen = length + 1;//求行长度

const int collen = length + 1;//求列长度

int index2[rowlen][collen];//再建一个坐标组记录每行最大的元素坐标

int index1[rowlen][collen];//建一个坐标组记录每列最小的元素坐标

for(int i = 0 ; i < rowlen; i ++){//两个坐标组初始化为零

for(int j = 0; j < collen; j ++){

index1[i][j] = 0;

index2[i][j] = 0;

}

}

int cnt = 1;//从坐标组第一行第二位,第一列第二位开始记录坐标

int row = 0;//这个行,列用来扫描给出的二维数组

int col = 0;

for(col = 0; col < length ; col ++){//这个记录每列最小元素的坐标

for(row = 0; row < length; row ++){

if(array[row][col] < array[row + 1][col]){

index1[cnt][0] = row;//坐标记录在坐标一组,行记在坐标一组的第一竖行

index1[0][cnt] = col;//列记在坐标一组的第一横列

cnt ++;//记录一个位置坐标,就向后移动一位

}

}

}

cnt = 1;

for(row = 0; row < length ; row ++){//记录每行最大元素坐标,记在坐标二组

for(col = 0; col < length; col ++){

if(array[row][col] > array[row][col + 1]){

index2[cnt][0] = row;

index2[0][cnt] = col;

cnt ++;

}

}

}

//之后比较两次坐标组记录各行各列坐标是否重合,重合,说明存在鞍点,没有,说明不存在

for(int i = 0; i < rowlen; i ++){

for(int j = 0; j < collen; j ++){

if(i == 0 && j == 0)//跳过(0,0)点

continue;

if(index1[i][0] == index2[i][0] && index1[0][j] == index2[0][j])

return array[index1[i][0]][index1[0][j]];//如果记录的横纵坐标各行各列都相等,说明重合存在鞍点

}

}

return 0;//循环结束也没return,说明不存在鞍点

}

int main(){

int **matrix;

int n;

scanf("%d", &n);

matrix = (int **)malloc(sizeof(int*) * n );

for(int i = 0; i < n; i ++){

matrix[i] = (int *)malloc(sizeof(int) * n);

}

for(int i = 0 ; i < n; i ++){

for(int j = 0; j < n; j ++){

scanf("%d", &matrix[i][j]);

}

}

if(saddle_point(matrix))

printf("%d\n", saddle_point(matrix));

else

printf("there is no such saddle point\n");

}

发表于 2019-12-31 20:44:22

回复(0)

matlab查找鞍点的位置,找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该...相关推荐

  1. (C语言)找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小,也可能没有鞍点。存在则输出坐标;否则输出 -1.

    #include<stdio.h> /* 找出一个二维数组中的鞍点,即该位置上的元素在该行最大, 在该列上最小,也可能没有鞍点.存在则输出坐标:否则输出 -1. */ int main(v ...

  2. 习题 5.7 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)。

    C++程序设计(第三版) 谭浩强 习题5.7 个人设计 习题 5.7 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点). 代码块: #include <io ...

  3. 找出一个二维数组中的鞍点

    找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. 解题流程如下: 对每行进行遍历.先找到每行的最大值,然后再确定该最大值是否是所在列的最小值,若满足,则为鞍点,遍 ...

  4. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小,也可能没有靶点

    找出一个二维师数组中的鞍点,即该位置上的元素在该行最大,在该列最小,也可能没有靶点 思路: 找出某行最大数,再判断此数是否是所在列最小 代码: #include<stdio.h> int ...

  5. 找出一个二维数组中的鞍点,既该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。(C语言程序设计第五版 p166.8)

    一,条件:该行最大(只有一个) 该列最小(只有一个) 二,功能:输入一个任意二维数组,输出鞍点或者输出鞍点不存在 三,思路: 以2*2的数组为例 (1,1) (1,2)   (2,1)   (2,2) ...

  6. C++找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)

    今日正式用csdn博客记录,回顾我所学到的知识,分享一些我的人生感悟和自身经历.也希望未来通够过此平台和更多喜爱编程的人交流学习. 道听途说再加上自己的感悟,认为编程最重要的是思想,而不是语言本身,语 ...

  7. 找出一个二维数组中的鞍点,即该位置上的的元素,在该行上最大,该列上最小,也可能没有鞍点

    #include<stdio.h> int main() {int a[100][100];int i,j,n,m,p,s,k,max;scanf("%d %d",&a ...

  8. python求二维数组的鞍点_C语言程序,找出一个二维数组的鞍点。

    什么是鞍点????? 鞍点就是在一个二维数组中,某一个数在该行中最大,然而其在该列中又是最小的数,这样的数称为鞍点. 昨天突然在书上看到这样的一道题,就自己尝试着写了一个找出一个二维数组中的鞍点. 好 ...

  9. c#语言-找一找一个二维数组中的鞍点

    /*. 编写程序,找一找一个二维数组中的鞍点(即该位置上的元素值在行中最大,在该列上最小.有可能数组没有鞍点).要求: �    二维数组的大小.数组元素的值在运行时输入: �    程序有友好的提示 ...

最新文章

  1. 积木履带机器人编程手册_学会编程,寓教于乐!ONEBOT 反履机甲图赏
  2. 苹果市值破3万亿美元!仅次于德国GDP
  3. php的内存分配还是很智能的
  4. php 二叉树 与赫夫曼树
  5. QMQ顺序消息设计与实现
  6. 最短无序连续子数组—leetcode581
  7. 浅谈:ArrayList,ListT,ListObject
  8. 华为平板matepad pro鸿蒙,华为MatePad Pro 2平板电脑入网:首款预装鸿蒙OS
  9. 控制手机 滑动 蓝牙hid_米家LED灯泡蓝牙Mesh版,助你打造温馨的智能家庭
  10. 我的电脑上的软件推荐
  11. 如何安装Vmware ESXi 6.7(图文介绍)
  12. 文件管理系统(开发文档)
  13. 礼物linux项目,好玩的Linux命令,将礼品包在盒子中
  14. 怎么做网站,网站制作步骤有哪些?
  15. 大数据与云计算:进入技术爆发期
  16. Android逆向破解关键词
  17. Java中print()\println()\printf()的区别及用法
  18. Computer Science Theory for the Information Age-1: 高维空间中的球体
  19. 下颌骨锥形束计算机断层扫描的英文缩写,山东地区人下颌后牙C形根管的锥形束CT研究...
  20. 一步一步学Spring Boot(三)-黄文毅-专题视频课程

热门文章

  1. 实例2:树莓派GPIO控制外部LED灯闪烁
  2. 益和VA 平台提升食品生产企业—米旗集团业务效率
  3. JavaScript基础--BOM部分01--李南江
  4. 激情创造奇迹(6.29)
  5. picsart旧版本_picsart旧版本下载-picsart历史老版v11.3.9 安卓版 - 极光下载站
  6. Web3 Api学习
  7. 海康摄像头web集成播放,ffmpeg+nginx方案
  8. php有没有网课,为什么有些网页的链接点开要下载个PHP文件?
  9. 内置MOS 同步DC-DC升压IC
  10. 怎样使用字体图标,以淘宝的图标为例子