程序运行说什么数组错误,当时能编译,不能输出。。。。。。。
class BB{
int a[] = {1,4,22,3,2,0,55,11,10};
int n = a.length;
int erg = a[0];
int f(){
for (int i=0; i<=n; i++){
if (a[i]>erg)
erg = a[i];
else continue;
}
return erg;
}
}
public class AA{
public static void main(String args[]){
BB p1 = new BB();
System.out.println(p1.f());
}
}
[code="java"]class BB{
int a[] = {1,4,22,3,2,0,55,11,10};
int n = a.length;
int erg = a[0];
int f(){
for (int i=0; i<=n-1; i++){ //这里改成n-1或者i<n,数组下标不能操作8,因为长度为9,但是下标从0开始到8
if (a[i]>erg)
erg = a[i];
else continue;
}
return erg;
}
}
public class AA{
public static void main(String args[]){
BB p1 = new BB();
System.out.println(p1.f());
}
} [/code]
把i<=n改成i<n
[code="java"]for (int i=0; i if (a[i]>erg)
erg = a[i]; [/code]
晕,速度够快地。。。。
数组的下标是从0开始,到n-1结束
就是你的for循环的问题
修改如下
for (int i=0; i<=[color=red]n-1[/color]; i++)
[code="java"]for (int i=0; i<n; i++)[/code]
[color=blue][b]你的循环基数有问题,应该是 从0到n-1 , 共 n 次[/b][/color]
[b]PS:数组的排序可以这样做:
[/b]
[code="java"]
class BB {
int a[] = { 1, 4, 22, 3, 2, 0, 55, 11, 10 };
int f() {
Arrays.sort(a);
return a[a.length-1];
}
}
[/code]
应该是数组下标越界吧?
写成这样应该就可以了:
for (int i=0; i<n; i++){
…………
}
以后看不懂出错信息,把那句英文复制了在baidu、google里一搜也应该有很多答案的。