Java二维数组找最大值

定义一个二维数组随机取0-100的值,找出在其行和列都是最大的元素及其下位置,如果没有这样的元素,则输出“没有这样的元素”。

用rand产生随机数,然后双循环变量数组

import java.io.*;
import java.util.Random;
class test  
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Random rd = new Random();
        int a[][] = new int[5][5];
        for(int i=0;i<5;i++)
        {
            for(int j=0;j<5;j++)
            {
                a[i][j] = rd.nextInt(101);
                System.out.print(a[i][j] + " ");
            }
            System.out.println();
        }
        for(int i=0;i<5;i++)
        {
            int maxCol = 0;
            for(int j=1;j<5;j++)
            {
                if(a[i][maxCol] < a[i][j])
                    maxCol = j;
            }
            int maxRow = 0;
            for(int j=1;j<5;j++)
            {
                if(a[j][maxCol] > a[maxRow][maxCol])
                    maxRow = j;
            }
            if(maxRow == i)
            {
                System.out.println(maxRow+","+maxCol+"="+a[maxRow][maxCol]);
            }
        }
    }
}

看一下是这个意思吗


import java.util.Random;

public class test{
    
    public static void main(String[] args) {
        Random random = new Random();
        //定义一个二维数组随机取0-100的值
        int[][] intArray=new int[5][5];
        for(int i=0;i<intArray.length;i++){
            for (int j = 0; j < intArray[i].length; j++) {
                intArray[i][j]=random.nextInt(100);
            }
        }


        //把二维数组展示一下,用来判定结果是否正确
        for(int i=0;i<intArray.length;i++){
            for (int j = 0; j < intArray[i].length; j++) {
                System.out.print(intArray[i][j]+"\t");
            }
            System.out.println("");
        }

        //打印每行的最大值
        for(int i=0;i<intArray.length;i++){
            //设置索引为0 的值 是目前最大值
            int rowMaxValue=intArray[i][0];
            //定义一个 布尔值,用来判断是否有最大值
            boolean hasMaxValue=true;
            for (int j = 1; j < intArray[i].length; j++) {
                if (intArray[i][j]>rowMaxValue){//如果出现了更大的数,将最大的值设置给rowMaxValue,同时更新当前没有最大值
                    rowMaxValue=intArray[i][j];
                    hasMaxValue=true;
                }else if (intArray[i][j]==rowMaxValue){//如果两个数相等,那么没有最大值
                    hasMaxValue=false;
                }
            }
            if (hasMaxValue){
                System.out.println("第"+i+"行的最大值是"+rowMaxValue);
            }else {
                System.out.println("第"+i+"行的没有这样的元素");
            }
        }
        
        //打印每列的最大值
        for(int i=0;i<intArray[0].length;i++){
            int rowMaxValue=intArray[0][i];
            boolean hasMaxValue=true;
            for (int j = 1; j < intArray.length; j++) {
                if (intArray[j][i]>rowMaxValue){
                    rowMaxValue=intArray[j][i];
                    hasMaxValue=true;
                }else if (intArray[j][i]==rowMaxValue){
                    hasMaxValue=false;
                }
            }
            if (hasMaxValue){
                System.out.println("第"+i+"列的最大值是"+rowMaxValue);
            }else {
                System.out.println("第"+i+"列的没有这样的元素");
            }
        }
    }
}


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632