吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 973|回复: 2
收起左侧

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

[复制链接]
25pojieXY 发表于 2020-3-4 23:56
public class Example {
        int [][]fun(int x){
    int [][]l =new int[x][x];
    int []n=new int[x*x];
    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[j]==n)
                                break;//除去相同的随机数
                        }
                        if(j==i)
                                break;//除去相同的随机数
                        }
}
    for(i=0;i<x;i++){
                for(j=0;j<x;j++){
                        l[j]=n[5*i+j];
}
}
    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[j]+"\t");
                        }
                        System.out.println();//打印输出产生的二维数组
}
    int max = 0;
        int min = k[0][0];
        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[j]){
                                m = i+1;
                                n = j+1;
                                max = k[j];
                }
                if(min > k[j]){
                        m = i+1;
                        n = j+1;
                        min = k[j];
                }
        }
        }
        System.out.println("最大值为:"+max+"其下标为"+m+""+n+"");
        System.out.println("最小值为:"+min+"其下标为"+m+""+n+"");
}
}

m,n错在哪里了

m,n错在哪里了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cglmj 发表于 2020-3-5 16:07
记录最值的变量分开就好了
[Java] 纯文本查看 复制代码
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[i][j] + "\t");
			}
			System.out.println();// 打印输出产生的二维数组
		}
		int max = 0;
		int min = k[0][0];
		//最大值
		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[i][j]) {
					m = i + 1;
					n = j + 1;
					max = k[i][j];
				}
				if (min > k[i][j]) {
					m_min = i + 1;
					n_min = j + 1;
					min = k[i][j];
				}
			}
		}
		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
记录最值的变量分开就好了
[mw_shl_code=java,true]public static void main(String args[]) {
                Example ...

十分感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 06:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表