标题: 最大值问题 [打印本页] 作者: hel 时间: 2013-11-9 12:24 标题: 最大值问题 public static int getMax(int[] arr)
{
int max = arr[0];
for(int i=0;i<arr.length;i++)
{
if(arr[i]>arr[max])
max = arr[i];
}
return max;
}
为什么回报错呢?程序在哪里出错了作者: 咸鱼要吃猫 时间: 2013-11-9 12:29
public static int getMax(int[] arr)
{
int max = arr[0];// 你这里定义的max是一个数组。
for(int i=0;i<arr.length;i++)
{
if(arr[i]>arr[max])//你这里又把max当成角标数。
max = arr[i]; //这里的max又变成数组了
}
return max;
}作者: Mr.Z.Lee 时间: 2013-11-9 12:29
public static int getMax(int[] arr)
{
int max = arr[0];
for(int i=0;i<arr.length;i++)
{
if(arr[i]>max)
max = arr[i];
}
return max;
}
复制代码
作者: 卑微の小幸福 时间: 2013-11-9 12:59
这个哪去试试。就没错了
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1;i<arr.length;i++ ) {//这而i要从1开始。不要自己和自己比呀
if (arr[i]>max) {
max = arr[i];
}
}
return max;//return 是for外返回
}作者: 唐宋元明清 时间: 2013-11-9 13:04
int max = arr[0]; //max是一个数组元素的值。
if(arr[i]>arr[max]) //你把数组元素值当成角标使用很容易就角标越界异常
改成arr[i]>max即可。作者: 梁健生 时间: 2013-11-9 13:15
public static int getMax(int[] arr)
{
int max = arr[0]; //把数组中第一个元素赋值给最大值max
for(int i=0;i<arr.length;i++)
//因为第一个元素已经被赋值,所以这里初始化条件可以改为i=1更好,但i=0不影响运行。
{
if(arr[i]>arr[max]) //这里是出问题的地方,改为arr[i]>max才对,max才是存储最大值的容器。
max = arr[i];
}
return max;
}作者: 黄炳期 时间: 2013-11-9 13:32
帖子已分类作者: 楞个里格朗 时间: 2013-11-9 13:34
public static int getMax(int[] arr)
{
int max = 0;
for(int i=1;i<arr.length-1;i++)
{
if(arr[i]>arr[max])
max = i;
}
return max;
}