h_yyyyyyyyy 2022-04-12 10:23 采纳率: 100%
浏览 40
已结题

java的int位置

java寻找随机数列的最大最小值中int位置不一样运行结果不一样
如果把
int max = a[0][0],min=a[5][5];
int ki_max=2,ki_min=0,kj_max=2,kj_min=0;
放在int [][]a=new int[8][9];后面min输出数值和位置都是0; (1)
放在 for(int i=0;i<a.length;i++) { (2)
for(int j=0;j<a.length;j++) {
前面输出结果就是正确的

int的位置也会影响for语句的运行吗

下面是编程内容

    int [][]a =new int[8][9];//给所有元素都赋值0                       //(1for (int i=0; i < a.length; i++) {
    for (int j=0; j<a.length; j++) {
    a[i][j]=1+(int)(Math.round(99*Math.random()));
    System.out.print(a[i][j]+"\t");}
    System.out.println();}  //输出8*91--100随机数
    

    int max = a[0][0],min=a[1][1];                               //就是这两句
    int ki_max=2,ki_min=0,kj_max=2,kj_min=0;                                 
    for(int i=0;i<a.length;i++) {                                     //(2for(int j=0;j<a.length;j++) {
           if(max<=a[i][j]) {
            max=a[i][j];ki_max=i+1;kj_max=j+1;               
            }
            else 
            if(min>=a[i][j]){
            min=a[i][j] ;
            ki_min=i+1;
            kj_min=j+1;
            }
        }
    }                              
    System.out.println("min="+min+"\t"+"它在第"+ki_min+"行,第"+kj_min+"个");
    System.out.println("max="+max+"\t"+"它在第"+ki_max+"行,第"+kj_max+"个");                                    
    
  • 写回答

2条回答 默认 最新

  • 溪风沐雪 2022-04-12 11:07
    关注

    我简单改了一下,你的主要问题是a是在for循环里赋值的,赋值前全是0,int max = a[0][0],min=a[1][1]; 放前面那么min就等于0了,后续逻辑就不会再改变min的值了
    还有一个小问题是j的取值上限应该是a[i].length

    int[][] a = new int[8][9];
            
            int ki_max = 2, ki_min = 0, kj_max = 2, kj_min = 0;
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[i].length; j++) {
                    a[i][j] = 1 + (int) (Math.round(99 * Math.random()));
                    System.out.print(a[i][j] + "\t");
                }
                System.out.println();
            } // 输出8*91--100随机数
            int max = a[0][0], min = a[1][1]; // 就是这两句
            
            for (int i = 0; i < a.length; i++) {
                for (int j = 0; j < a[i].length; j++) {
                    if (max <= a[i][j]) {
                        max = a[i][j];
                        ki_max = i + 1;
                        kj_max = j + 1;
                    } 
                    if (min >= a[i][j]) {
                        min = a[i][j];
                        ki_min = i + 1;
                        kj_min = j + 1;
                    }
                }
            }
            System.out.println("min=" + min + "\t" + "它在第" + ki_min + "行,第" + kj_min + "个");
            System.out.println("max=" + max + "\t" + "它在第" + ki_max + "行,第" + kj_max + "个");
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月12日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP