黑马程序员技术交流社区

标题: 遇到问题求帮助? [打印本页]

作者: 2119391569    时间: 2015-3-23 10:16
标题: 遇到问题求帮助?
/**
这是一个可以对数组进行操作的工具类,该数组提供了获取最值、排序等功能。
@author  liqin
@version  v1.1

*/
public class ArrayTool
{
        private ArrayTool(){};
        /**
        获取一个整形数组中的最大值
        @param arr  接收一个int类型的数组
        @return  会返回一个该数组中的最大值
       
        */
        public static int getmax(int[] arr)
        {
                int  max=0;
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]>arr[max])
                        {
                                max=arr[x];
                        }
                }
                return max;
        }
        /**
        获取一个整形数组中的最小值
        @param  arr 接收一个int类型的数组
        @return  会返回一个数组中的最小值

        */
        public static int getmin(int[] arr)
        {
                int min=0;
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]<arr[min])
                        {
                                min=arr[x];
                        }
                }
                return min;
        }
        /**
        给int数组进行选择排序
        @param  接收一个int类型的数组
       
        */
        public static void selectsort(int[] arr)
        {
                for(int x=0;x<arr.length-1;x++)
                {
                        for(int y=x+1;y<arr.length;y++)
                        {
                                if(arr[x]>arr[y])
                                {
                                        swap(arr,x,y);
                                }
                        }
                }
        }
        /**
        给int数组进行冒泡排序
        @param  接收一个int类型的数组

        */
        public static void bubblesort(int[] arr)
        {
                for(int x=0;x<arr.length-1;x++)
                {
                        for(int y=0;y<arr.length-x-1;y++)
                        {
                                if(arr[y]>arr[y+1])
                                {
                                        swap(arr,y,y+1);
                                }
                        }
                }
        }
       
        /*
        给数组中元素进行换位置操作
        @param arr 接收一个int类型的数组
        @param  a  要置换的位置
        @param  b  要置换的位置
       
        */
        private static void swap(int[] arr,int a,int b)
        {
                int temp=arr[a];
                arr[a]=arr[b];
                arr[b]=temp;
        }
        /**
        用于打印数组中的元素。打印形式是:[elemet1,elemet2,.....]
        */
        public static void printArray(int[] arr)
        {
                System.out.print("[");
                for(int x=0;x<arr.length;x++)
                {
                        if(x!=arr.length-1)
                        {
                                System.out.print(arr[x]+", ");
                        }
                        else
                                System.out.println(arr[x]+"]");
                }
        }
}
class ArrayToolDemo
{
        public static void main(String[] args)
        {
                int[] arr={3,6,9};

                int max=ArrayTool.getMax(arr);
                System.out.println("max="+max);
        }

}
编译的时候老是提找不到符号!
作者: 艺多不压身丶    时间: 2015-3-23 10:21
getmax是小写的。你写成大写的了
作者: wkz_crystal    时间: 2015-3-23 12:32
int max=ArrayTool.getMax(arr); //你在方法中定义的是小写的getmax名称,这里调用时,你却用了大写的M……


作者: 王小乖    时间: 2015-3-23 16:01
调用函数跟实际函数的名称不一样
作者: 2119391569    时间: 2015-3-23 18:13
问题解决了,呵呵谢谢大家!
作者: 胡几手    时间: 2015-3-23 19:22
楼主仔细点哦。
作者: biocuration    时间: 2016-5-18 13:43
这因该是个小问题
作者: zhangjinbu    时间: 2016-5-18 22:27
这因该是个小问题!!!!!!!!!
作者: 我是你岁哥❤环    时间: 2016-5-19 00:28
2119391569 发表于 2015-3-23 18:13
问题解决了,呵呵谢谢大家!

你不觉得这个程序中获取最值的地方有问题么?max这个定义的是最大值,而你在方法中居然还用作了下标,这很容易出现数组溢出的情况啊
作者: 我是你岁哥❤环    时间: 2016-5-19 00:30
zhangjinbu 发表于 2016-5-18 22:27
这因该是个小问题!!!!!!!!!

以上代码,求最值的部分有问题
  1. public static int getmax(int[] arr)
  2. {
  3.                 int  max=0;
  4.                 for(int x=0;x<arr.length-1;x++)
  5.                 {
  6.                         if(arr[x]>arr[x+1])
  7.                         {
  8.                                 max=arr[x];
  9.                         }
  10.                 }
  11.                 return max;
  12. }
复制代码


可以参考这个试试
作者: 我是你岁哥❤环    时间: 2016-5-19 00:32
biocuration 发表于 2016-5-18 13:43
这因该是个小问题

程序编译没有问题,不代表代码是正确的,逻辑上可能会出现问题
作者: woshijingke    时间: 2016-5-19 08:05

getmax是小写的。你写成大写的了




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