有一个小问题,大家帮忙看一下,关于数组
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] 不就越界了么
------解决方案--------------------哦,原来是这样