日期:2014-05-20  浏览次数:20686 次

有一个小问题,大家帮忙看一下,关于数组
import   java.io.*;
public   class   Mat
{
public   static   void   main(String   args[])
{
int   a[]={2,4,6,8,10,12,14,16,18};
int   k=0;
int   i;
for(i=0;i <a.length;i++)
{
if(a[i]> a[i+1])
k=a[i];
else
k=a[i+1];
}
System.out.println( "最大值为: "+k);
}
}

运行时说if(a[i]> a[i+1])有问题 导致数组下标越界异常
大家看看该怎么该
谢谢帮助 滴水之恩 涌泉相报

------解决方案--------------------
当i=a.length-1的时候,i+1=a.length 所以a[i+1]越界嘛
------解决方案--------------------
这么晚了还在研究这个啊?
if i is length-1, i+1 should be length, which is an invalid index.

------解决方案--------------------
if a[i+1] <a[i]
------解决方案--------------------
for(i=0;i <=a.length-1;i++)
循环该一下就行了

------解决方案--------------------
最后一次i=8时,a【i+1】即a【9】是不存在的
------解决方案--------------------
有所收获
------解决方案--------------------
学习中
------解决方案--------------------
程序写得有点问题

import java.io.*;
public class Mat
{
public static void main(String args[])
{
int n=7;
int[] a=new int[n];
for(int i=0;i <n;i++)
{
a[i]=2*n;
}

int k=0;
for(int i=0;i <a.length;i++)
{
if(a[i]> k) //注意要跟k比,否则是比较相邻值,而不是max,你调换下数组中元素序看看
k=a[i];

System.out.println( "最大值为: "+k);
}
}
------解决方案--------------------
呵呵

i = (a.length - 1)的时候满足条件

a[i+1] 不就越界了么
------解决方案--------------------
哦,原来是这样