黑马程序员技术交流社区

标题: 数组排序打第二遍代码的时候找不到哪里错了。 [打印本页]

作者: 金政极    时间: 2012-9-23 23:21
标题: 数组排序打第二遍代码的时候找不到哪里错了。
public static int getMax(int[] arr)
        {

                int max =0;
               
                for(int x=1; x<arr.length; x++)
                {
                        if(arr[x]>arr[max])
                                max = x;
                }
                return arr[max];
               
        }
        public static int getMin(int[] arr)
        {
                int min = 0;
                for(int x=1; x<arr.length;x++)
                {
                        if(arr[x]<arr[min])
                                min = x;
                }
                return arr[min];       
        }
       
       
       
       
        public static void main(String[] args)
        {
                int[] arr = {5,1,6,4,2,8,9};
               
                int max = getMax[arr];
                int min = getMin[arr];
               
                System.out.println("max="+max);
               
                System.out.println("min="+min);
               
        }


作者: 程振    时间: 2012-9-23 23:26

  1. public class Snippet {
  2.         public static int getMax(int[] arr) {

  3.                 int max = 0;

  4.                 for (int x = 1; x < arr.length; x++) {
  5.                         if (arr[x] > arr[max])
  6.                                 max = x;
  7.                 }
  8.                 return arr[max];

  9.         }

  10.         public static int getMin(int[] arr) {
  11.                 int min = 0;
  12.                 for (int x = 1; x < arr.length; x++) {
  13.                         if (arr[x] < arr[min])
  14.                                 min = x;
  15.                 }
  16.                 return arr[min];
  17.         }

  18.         public static void main(String[] args) {
  19.                 int[] arr = { 5, 1, 6, 4, 2, 8, 9 };

  20.                 // 你的代码。。。。
  21. //                int max = getMax[arr];
  22. //                int min = getMin[arr];
  23.                
  24.                 // 。。。。。。。。
  25.                 int max = getMax(arr);
  26.                 int min = getMin(arr);               

  27.                 System.out.println("max=" + max);

  28.                 System.out.println("min=" + min);

  29.         }

  30. }
复制代码

作者: 明光照    时间: 2012-9-23 23:26
你这是一个求最大数与最小数的程序。却在方法中把最大数与最小数当作数组的下标。这样能得出什么?
作者: 吴兵    时间: 2012-9-23 23:28
                int max = getMax[arr];
                int min = getMin[arr];
这句写错了,应该是:
           int max = getMax(arr);
                 int min = getMin(arr);
作者: 明光照    时间: 2012-9-23 23:29
public static int getMin(int[] arr) {

16.                int min = 0;

17.                for (int x = 1; x < arr.length; x++) {

18.                        if (arr[x]<min)

19.                                min =arr[x] ;

20.                }

21.                return min;

22.        }

作者: 邱成    时间: 2012-9-23 23:29
  1. class Demo
  2. {       
  3. public static int getMax(int[] arr)
  4.          {

  5.                 int max =0;
  6.                  
  7.                 for(int x=1; x<arr.length; x++)
  8.                  {
  9.                          if(arr[x]>arr[max])
  10.                                  max = x;
  11.                  }
  12.                  return arr[max];
  13.                  
  14.         }
  15.          public static int getMin(int[] arr)
  16.          {
  17.                  int min = 0;
  18.                  for(int x=1; x<arr.length;x++)
  19.                  {
  20.                          if(arr[x]<arr[min])
  21.                                  min = x;
  22.                  }
  23.                  return arr[min];        
  24.         }
  25.          
  26.         
  27.         
  28.         
  29.         public static void main(String[] args)
  30.          {
  31.                  int[] arr = {5,1,6,4,2,8,9};
  32.                  
  33.                 int max = getMax(arr);//这里的括号写错了
  34.                  int min = getMin(arr);//这里的括号写错了
  35.                  
  36.                 System.out.println("max="+max);
  37.                  
  38.                 System.out.println("min="+min);
  39.                  
  40.         }

  41. }

  42.      
  43.    
复制代码

作者: 金政极    时间: 2012-9-23 23:30
明光照 发表于 2012-9-23 23:26
你这是一个求最大数与最小数的程序。却在方法中把最大数与最小数当作数组的下标。这样能得出什么? ...

愁死我了,应该是今天看代码看多了,眼睛花的不行啊,看了能有10多分钟是在瞅不下去了就提了个问题····哎·····
见笑了:#
作者: 金政极    时间: 2012-9-23 23:31
程振 发表于 2012-9-23 23:26

今天看的太多了····眼睛花了·····愁了半天都没看出来:'(
作者: 唐学松    时间: 2012-9-23 23:32
我想起一句话,细节是蘑菇啊,

//                int max = getMax[arr]--------- int max = getMax(arr);
//                int min = getMin[arr];------------  int min = getMin(arr);
作者: 程振    时间: 2012-9-23 23:43
金政极 发表于 2012-9-23 23:30
愁死我了,应该是今天看代码看多了,眼睛花的不行啊,看了能有10多分钟是在瞅不下去了就提了个问题··· ...

使用eclipse很容易发现变异错误。。。。。。。。。。。。
作者: 杜正华    时间: 2012-9-24 11:14
  1. package com.aduvm.practice;

  2. public class Test {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static int getMax(int[] arr)  //获得给定数组最大值
  7.     {

  8.             int max =0;
  9.             
  10.             for(int x=1; x<arr.length; x++)  
  11.             {
  12.                     if(arr[x]>arr[max])  //取最大值在arr[]数组中的索引
  13.                             max = x;
  14.             }
  15.             return arr[max];  //返回数组arr[]中的最大值
  16.             
  17.     }
  18.     public static int getMin(int[] arr)  //获得给定数组最小值
  19.     {
  20.             int min = 0;
  21.             for(int x=1; x<arr.length;x++)  
  22.             {
  23.                     if(arr[x]<arr[min])   //取最小值在arr[]数组中的索引
  24.                             min = x;   
  25.             }
  26.             return arr[min];     //返回arr[]的最小值   
  27.     }
  28.    
  29.    
  30.    
  31.    
  32.     public static void main(String[] args)
  33.     {
  34.             int[] arr = {5,1,6,4,8,8,9};
  35.             
  36.             int max = getMax(arr);  //这里调用函数用getMax(arr)而不是getMax[]
  37.             int min = getMin(arr);  //同上
  38.             
  39.             System.out.println("max="+max);  //打印出最大值
  40.             
  41.             System.out.println("min="+min);  //打印出最小值
  42.             
  43.     }
  44. }   

复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2