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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王江涛 中级黑马   /  2014-4-18 23:49  /  1389 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王江涛 于 2014-4-19 02:53 编辑

public class max
{
        public static int getmax(int[] arry)
        {
        int max=arry[0];
        for(int i=1;i<arry.length;i++)
                {
                if(arry>arry[0])
                        {
                        max=i;
                        }
                }
                        return arry[max];
}
public static void main(String[] args)
{
        int arr[]={8,28,5,7,21};
        int max=getmax(arr);
        System.out.println("数组arr[]的最大值是:"+max);
        }
}


为什么结果是21?

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
本帖最后由 杨庆雷 于 2014-4-19 00:11 编辑

  1. public class max
  2. {
  3.         public static int getmax(int[] arry)
  4.         {
  5.         int max=arry[0];
  6.         for(int i=1;i<arry.length;i++)
  7.                 {
  8.                 if(arry[i]>arry[0])// 每一次都拿后面的跟第一个比  只要是满足要求 就把i赋值给max 最后是arr[4] = 21
复制代码

  1.                    {
  2.                         max=i;
  3.                         }
  4.                 }
  5.                         return arry[max];
  6. }
  7. public static void main(String[] args)
  8. {
  9.         int arr[]={8,28,5,7,21};
  10.         int max=getmax(arr);
  11.         System.out.println("数组arr[]的最大值是:"+max);
  12.         }
复制代码
修改后代吗:
  1. public class Test3 {

  2.     public static int getmax(int[] arry) {
  3.             for(int i=0;i<arry.length-1;i++){
  4.                    
  5.                 if(arry[i]>arry[i+1]){
  6.                         arry[i+1] = arry[i];
  7.                 }
  8.             }
  9.         return arry[arry.length-1];
  10.     }
  11.         public static void main(String[] args){
  12.             int arr[]={8,28,5,7,21};
  13.             int max=getmax(arr);
  14.             System.out.println("数组arr[]的最大值是:"+max);
  15.     }
  16. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 很给力!

查看全部评分

回复 使用道具 举报
  1. /*
  2. 需求:
  3. 求数组中的最大值

  4. 方法:
  5. 1.从数组中的第一个元素开始,同其后一个元素比较
  6. 2.将较大的元素的值后移,再同其后一个元素比较,以此类推
  7. 3最终得到的数组中的最后一个元素,即为该元素的最大值

  8. */
  9. public class Max
  10. {
  11.         public static int getMax(int[] array)
  12.         {
  13.                 int max = array[0];
  14.                 for (int i = 0;i < array.length-1;i++ )//后面会用到i+1,i的取值只能<数组.length-1
  15.                 {
  16.                         if (array[i] > array[i+1])
  17.                         {
  18.                                 int x = 0;//定义一个局部变量,用于数组元素的换位
  19.                                 x = array[i];
  20.                                 array[i] = array[i+1];
  21.                                 array[i+1] = x;
  22.                         }
  23.                 }
  24.                 return array[array.length-1];
  25.         }
  26.         public static void main(String[] args)
  27.         {
  28.                 int[] arr = {8,28,5,7,21};
  29.                 int max = getMax(arr);
  30.                 System.out.println("数组arr[]的最大值是:"+max);
  31.         }
  32. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 很给力!

查看全部评分

回复 使用道具 举报

谢了,原来比较代码写错了
回复 使用道具 举报



public class max
{
        public static int getmax(int[] arry)
        {
        int max=arry[0];
        for(int i=1;i<arry.length;i++)
                {
                if(arry>arry[0])// 这个地方英爱写成arry[i]>arry[0] 而不是 你写的这样arry>arry[0],你写的这样就没办法比较前面是引用类型的 变量 后面是基本类型的变量。
                        {
                        max=i;
                        }
                }
                        return arry[max];
}
public static void main(String[] args)
{
        int arr[]={8,28,5,7,21};
        int max=getmax(arr);
        System.out.println("数组arr[]的最大值是:"+max);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马