Java编程题:寻找鞍点 2021-05-19
Posted 超霸霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java编程题:寻找鞍点 2021-05-19相关的知识,希望对你有一定的参考价值。
- 什么是鞍点:鞍点指的是数组在某位置上的元素,其所在行最大,所在列最小(鞍点不一定存在)
- 题目要求:从控制台输入数据初始化一个数组,然后输出其鞍点的位置和值,若不存在则输出"“不存在鞍点”
以下是我写的一个寻找鞍点的代码:
package programmingTopics;
import java.util.Scanner;
public class 寻找鞍点 {
public static void main(String[] args) {
System.out.println("请输入数组的行数:");
int r =new Scanner(System.in).nextInt();
System.out.println("请输入数组的列数:");
int c =new Scanner(System.in).nextInt();
int a[][]=new int [r][c];
//从控制台输入数据初始化数组
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.print("请输入第"+(i+1)+"行"+"第"+(j+1)+"列的数据:");
int x=new Scanner(System.in).nextInt();
a[i][j]=x;
}
}
//打印数组
System.out.println("数组为:");
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.print(a[i][j]+"\\t");
}
System.out.println();
}
//int a[][]= {{1,2,3,4},{5,6,7,8},{9,10,11,12},{1,2,2,3}};
//line_max为每行的最大值,line_max_column_index为每行最大值的列索引,flag用于判断是否存着鞍点
int i,j,line_max,line_max_column_index,flag,n=0;
for(i=0;i<4;i++)
{
//假设每行第一个值为该行的最大值,并赋值给line_max
line_max=a[i][0];
line_max_column_index=0;
//找出第i行的最大值,并记录该值的列索引值
for(j=1;j<4;j++)
{
if(a[i][j]>line_max) //使用循环找到第i行的最大值
{
line_max=a[i][j];
line_max_column_index=j;
}
}
line_max=a[i][line_max_column_index]; //使用line_max记录下第i行的最大值
flag=1;
//判断第i行的最大值是否是该列的最小值
for(j=0;j<4;j++)
{
if(a[j][line_max_column_index]<line_max) //如果有值小于line_max,则改点不是鞍点
{
flag=0;
break;
}
}
if(flag==1) //如果flag=1说明line_max为鞍点
{
System.out.println("鞍点位置是:("+(i+1)+","+(line_max+1)+"),值是:"+a[i][line_max]);
n++;
}
}
if(n==0) //n=0说明没有鞍点
{
System.out.println("没有鞍点!");
}
}
}
以上是关于Java编程题:寻找鞍点 2021-05-19的主要内容,如果未能解决你的问题,请参考以下文章