25pojieXY 发表于 2020-3-4 23:56

由随机数产生的二维数组,算出二维数组的最值及其下标,代码中的m,n问题出在哪里

public class Example {
        int [][]fun(int x){
    int [][]l =new int;
    int []n=new int;
    int i,j;
    for(i=0;i<x*x;i++){//取随机数
        while(true){
                n=(int)(Math.random()*(1000-100)+100); //所取的随机数范围在100-1000之间
                for(j=0;j<i;j++){
                        if(n==n)
                                break;//除去相同的随机数
                        }
                        if(j==i)
                                break;//除去相同的随机数
                        }
}
    for(i=0;i<x;i++){
                for(j=0;j<x;j++){
                        l=n;
}
}
    return l;
}

public static void main(String args[]){
        Example main=new Example();
        int [][]k=main.fun(10);

    for(int i=0;i<k.length;i++){
                for(int j=0;j<k.length;j++){
                        System.out.print(k+"\t");
                        }
                        System.out.println();//打印输出产生的二维数组
}
    int max = 0;
        int min = k;
        int m = 1;//第m行
        int n = 1;//第n列
        for(int i = 0;i<k.length;i++){
                for(int j = 0;j<k.length-1;j++){
                        if(max < k){
                                m = i+1;
                                n = j+1;
                                max = k;
                }
                if(min > k){
                        m = i+1;
                        n = j+1;
                        min = k;
                }
        }
        }
        System.out.println("最大值为:"+max+"其下标为"+m+"行"+n+"列");
        System.out.println("最小值为:"+min+"其下标为"+m+"行"+n+"列");
}
}

cglmj 发表于 2020-3-5 16:07

记录最值的变量分开就好了
public static void main(String args[]) {
                Example main = new Example();
                int[][] k = main.fun(10);

                for (int i = 0; i < k.length; i++) {
                        for (int j = 0; j < k.length; j++) {
                                System.out.print(k + "\t");
                        }
                        System.out.println();// 打印输出产生的二维数组
                }
                int max = 0;
                int min = k;
                //最大值
                int m = 1;// 第m行
                int n = 1;// 第n列
                //最小值
                int m_min = 1;// 第m行
                int n_min = 1;// 第n列
                for (int i = 0; i < k.length; i++) {
                        for (int j = 0; j < k.length - 1; j++) {
                                if (max < k) {
                                        m = i + 1;
                                        n = j + 1;
                                        max = k;
                                }
                                if (min > k) {
                                        m_min = i + 1;
                                        n_min = j + 1;
                                        min = k;
                                }
                        }
                }
                System.out.println("最大值为:" + max + "其下标为" + m + "行" + n + "列");
                System.out.println("最小值为:" + min + "其下标为" + m_min + "行" + n_min + "列");
        }

25pojieXY 发表于 2020-3-7 18:16

cglmj 发表于 2020-3-5 16:07
记录最值的变量分开就好了
public static void main(String args[]) {
                Example ...

十分感谢{:1_893:}
页: [1]
查看完整版本: 由随机数产生的二维数组,算出二维数组的最值及其下标,代码中的m,n问题出在哪里