一、题目描述:

定义一个二维数组用于存储一个4×4 矩阵的元素值,并找出这个矩阵的所有鞍点,然后输出鞍点的位置及值。

二、鞍点解释

  • ①在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。
  • ②在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。
  • ③在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。
  • ④在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。

三、分析

鞍点就是二维数组中一个元素既是它所在行的最大值,又是所在列的最小值。

  • 算法思路:
    ①先寻找每一行的最大值
    ②记录每一行最大数的所在的列
    ③判断最大值在他所在的列是否也是最小值
    ④若是鞍点则输出鞍点所在位置及值,若不存在鞍点输出“没有鞍点”。

四、代码

package com.lyp.test;import java.util.Scanner;public class findSaddlePoint {public static void main(String[] args) {int s,min,max,count = 0;int[] a = new int[4];Scanner scanner = new Scanner(System.in);//定义4*4数组int[][] array = new int[4][4];//接收数组的输入System.out.println("请输入数组元素:");for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {System.out.print("请输入第"+(i+1)+"行第"+(j+1)+"个元素:");array[i][j] = scanner.nextInt();}}//打印数组for (int i = 0; i < 4; i++) {for (int j = 0; j < 4; j++) {System.out.print(array[i][j]+"   ");}System.out.println();}//寻找鞍点for (int i = 0; i < 4; i++) {max = array[i][0];for (int j = 0; j < 4; j++) { //找每行的最大值if (array[i][j] > max){max = array[i][j];}}s = 0;for (int j = 0; j < 4; j++) { //将最大值所在的列存入a[]中if (array[i][j] == max){a[s] = j;s++;    //s的值是最大值的个数}}min = max;for (int j = 0; j < s; j++) { //有几个最大值,就进行几次循环for (int k = 0; k < 4; k++) { //判断这个行的最大值是不是列最小if(min > array[k][a[j]]) { //如果不是,则判断下一个break;}if (k == 3){ //说明是鞍点System.out.println("鞍点为第"+(i+1)+"行第"+(a[j] + 1)+"列的元素:"+array[i][a[j]]);count++;}}}}if(count == 0){System.out.println("没有鞍点");}}
}

五、输出结果

示例一:

示例二:

示例三:

示例四:

Java实现寻找二维数组的鞍点相关推荐

  1. java利用二维数组查找鞍点_java找二维数组的鞍点

    LOGO 制作者: 制作者: 班级: 班级: 学号: 学号: 指导老师: 指导老师: 一.设计要求 求一个二维数组中的鞍点,即 该位置上的元素在该...... 54,98 19,32,34,65,34 ...

  2. java不等长二维数组_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  3. java创建动态二维数组

    java创建动态二维数组 //声明Scanner对象,获取键盘输入值Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = s ...

  4. C语言练习二 :找出一个二维数组的鞍点

    1.鞍点的定义:某个元素在其所在行中最大.所在列中最小. 2.程序代码 //求一个二维数组的鞍点 二维数组可能没有鞍点,如果有,只能有一个 #include<stdio.h> int ma ...

  5. C语言经典100题——求一个二维数组的鞍点

    <1>题目描述 找一个二维数组中的鞍点,即该位置上的元素在该行上最大.在该列上最小.也可能没有鞍点 1 2 3 4 5 6 7 8 9 //3为该二维数组中鞍点 <2>思路分析 ...

  6. JAVA复习(二维数组——快排——迷宫)

    二维数组: (了解) 定义: 一维数组:  int[] array=new int[3] ;开辟了3个空间的int类型的数组 二维数组: int[][] 对于二维数组的初始化定义: 数组的动态初始化: ...

  7. 求马鞍点java_二维数组马鞍点求解算法

    若在矩阵A 中存在一个元素ai,j(0≤i≤n-1,0≤j≤m-1),该元素是第i行元素中最小值且又是第j 列元素中最大值,则称此元素为该矩阵的一个马鞍点.假设以二维数组存储矩阵A,试设计一个求该矩阵 ...

  8. C++/java/python 创建二维数组

    创建了一个M×N的二维数组 C++ vector<vector<int>> ans(M,vector<int>(N, 0)); Java int[][] ans = ...

  9. 【转】java中定义二维数组的几种写法

    原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...

最新文章

  1. CDN全站加速助力企业云上升级
  2. 唠唠面试常问的:面向对象六大原则
  3. 在Window上使用Jenkins自动发布Java工件
  4. 洛谷P3803 【模板】多项式乘法(FFT)
  5. 【工程项目经验】dmesg查看linux系统缓存日志
  6. idea导入gradle项目ctrl无法定位问题
  7. Julia : DataFrame与replace、delete
  8. 2021-02-24 PMP 群内练习题 - 光环
  9. SQL - 多表关联
  10. Keep in mind用法
  11. 把sql中的image数据在网页中显示成图片
  12. 夜晚网速变慢与网站服务器开机数量减少有关,网速变慢的原因及解决办法
  13. 操作系统进程线程区别、并发和并行、内存和外存
  14. html默认office打开如何更改,怎么设置office默认打开方式,修改office的默认打开方式...
  15. 123456789 往这串数字里插入3个乘号,使得结果最大
  16. 华中科技大学--数据结构课程设计 ---红楼梦人物关系分析
  17. 电机标幺化、PI标幺化、锁相环PLL标幺化 详解电机模型相关标幺化处理 电流环PI控制器的标幺化处理
  18. bs4 Beautiful Soup详解
  19. P1862 输油管道问题
  20. 2016.04.28,英语,《Vocabulary Builder》Unit 20

热门文章

  1. PTA -- 题附代码(形状继承) (图形继承与多态)
  2. CPT、CPM、CPC、CPA、CPS
  3. Spark-core项目实战——电商用户行为数据分析
  4. 数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)
  5. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
  6. 强生稳豪倍优型血糖仪试纸_强生稳豪倍优型血糖仪(送50片试纸)
  7. 基于BQ76PL455的BMS电路板设计
  8. linux superblock 时间,e2fsck: Bad magic number in super-block_Linux
  9. 世界各国新娘幸福瞬间
  10. 阿里女合伙人身价达40亿,曾经月薪500小小前台,如何成功逆袭?