A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

青少年

中级黑马

  • 黑马币:12

  • 帖子:48

  • 精华:0

© 青少年 中级黑马   /  2015-5-17 18:22  /  2795 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
//二维数组找最大元素值为甚么没有报错而 if (array[x][y]>mini)中的大小与号换了之后最后值都不变?
public class  package com.itheima;
//定义一个二维int数组,编写代码获取最大元素
public class MaxDemo {
public static void main(String[] args){
    int[][] array = { { 5, 30, 9, 23 },  { 12, 21 }};
   // 定义基准元素
  int max = array[0][0];
   // 将之与其他元素依次遍历比较
   for (int x = 0; x < array.length; x++) {
        for (int y = 0; y < array[x].length; y++) {
               if (array[x][y]<max) ;{
                          max= array[x][y];
                  }
        }
  }
  System.out.println("array[][]数组中最大的元素为"+ max);
}
}

最佳答案

查看完整内容

同学有一处错误if语句后面多了个分号。 还有一个可能是理解错误,首先定义了max,里面存储的是最大值,而你的if语句里面写的是如果这个值比当前最大值(max)小就把这个值赋给max,这样写出来是得到最小值的,由于之前在if语句后面加了个分号,所以导致if语句并没有控制max=array[x][y],所以结果是二维数组中最后一个数 ...

13 个回复

倒序浏览
本帖最后由 fhy1969038887 于 2015-5-17 19:02 编辑

同学有一处错误if语句后面多了个分号。
还有一个可能是理解错误,首先定义了max,里面存储的是最大值,而你的if语句里面写的是如果这个值比当前最大值(max)小就把这个值赋给max,这样写出来是得到最小值的,由于之前在if语句后面加了个分号,所以导致if语句并没有控制max=array[x][y],所以结果是二维数组中最后一个数
  1. public class package com.itheima;
  2. //定义一个二维int数组,编写代码获取最大元素
  3. public class MaxDemo {
  4. public static void main(String[] args){
  5. int[][] array = { { 5, 30, 9, 23 }, { 12, 21 }};
  6. // 定义基准元素
  7. int max = array[0][0];
  8. // 将之与其他元素依次遍历比较
  9. for (int x = 0; x < array.length; x++) {
  10. for (int y = 0; y < array[x].length; y++) {
  11. if (array[x][y]>max) {
  12. max= array[x][y];
  13. }
  14. }
  15. }
  16. System.out.println("array[][]数组中最大的元素为"+ max);
  17. }
复制代码


回复 使用道具 举报
在语句if (array[x][y]<max) 后多写了个分号,if判断没有对赋值起作用,赋值在每次循环都会执行,所以最后结果是21
回复 使用道具 举报
太马虎了。谢谢
回复 使用道具 举报
可以拿来当第一阶段的测试题了
public static void main(String [] args)
{
        int num=100;
        if(num ++>100);
{
        num =200;
}
        System.out.println(num);
}
回复 使用道具 举报
class Max{
  public static void main(String[]args){
  int[] [] arr = {{132,34,54,56},{23,43,54,54},{23,43,545,3}};
     //假如第一个数是最大的.
    int max = arr[0][0];
    //遍历;
   for(int i = 0 ; i<arr.length;i++){
     for(int j = 0 j<arr.length;j++){
       //判断;
       if(arr[i][j]>max){
          max = arr[i][j];
        }
      System.out.println(max);
   }
}
}
应该就是这样了.谢谢.
回复 使用道具 举报
一楼正解
回复 使用道具 举报
if语句后多加了个分号
回复 使用道具 举报
小麻 中级黑马 2015-5-19 11:46:14
9#
刚看到面向对象  只能发现if后面多了分号
回复 使用道具 举报
  1. <p>//①if 条件语句后多了个分号,②if(array[x][y]>max)才是取最大值的,如果找到的元素比标记的max大,将这个元素的值赋给max。
  2. //代码修改如下(已运行验证过):</p><p>
  3. </p><p>//二维数组找最大元素值为甚么没有报错而 if (array[x][y]>mini)中的大小与号换了之后最后值都不变?
  4. package com.itheima;

  5. //定义一个二维int数组,编写代码获取最大元素
  6. public class MaxDemo {
  7.         public static void main(String[] args) {
  8.                 int[][] array = { { 5, 30, 9, 23 }, { 12, 21 } };
  9.                 // 定义基准元素
  10.                 int max = array[0][0];
  11.                 // 将之与其他元素依次遍历比较
  12.                 for (int x = 0; x < array.length; x++) {
  13.                         for (int y = 0; y < array[x].length; y++) {
  14.                                 if (array[x][y] > max) {
  15.                                         max = array[x][y];
  16.                                 }
  17.                         }
  18.                 }
  19.                 System.out.println("array[][]数组中最大的元素为" + max);
  20.         }
  21. }</p>
复制代码


回复 使用道具 举报
if();
{
some statements……
}
some statements根本都没有和if关联。它就没有属于if代码块。
回复 使用道具 举报
悬赏的黑马币呢?
回复 使用道具 举报
嗯嗯,一楼正解
回复 使用道具 举报
找最值问题其实很简单,只是用到了简单的查找方法,如果是初学者,为了以后的方便可以看一些计算机专业的数,数据结构,算法设计等,这在以后的编程中会给你带来很大的好处,会给你提供很多解决问题的思路。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马