public class text6
{
public static void main(String[] args)
{
int i=0;
int n,j,t,b;
int a[]=new int[10];
for(n=0;n<10;n++)
{
a[n]=(int)(Math.random()*(100-0)+0);
}
for(j=0;j<10;j++)
{
for(n=j+1;n<10;n++)
{
if(a[n]>a[n+1])
{
t=a[n];
a[n]=a[n+1];
a[n+1]=t;
}
}
}
for(b=0;b<10;b++)
{
System.out.println(a[b]+" ");
}
}
}
"main" java.lang.ArrayIndexOutOfBoundsException: 10 at text6.main(text6.java:20)
答案:1 悬赏:30 手机版
解决时间 2021-01-24 04:58
- 提问者网友:心如荒岛囚我终老
- 2021-01-24 01:00
最佳答案
- 五星知识达人网友:孤独入客枕
- 2021-01-24 01:30
for(j=0;j<10;j++)
{
for(n=j+1;n<10;n++)
{
if(a[n]>a[n+1])
{
t=a[n];
a[n]=a[n+1];
a[n+1]=t;
}
}
}
请看,当j=8的时候,第一个循环8<10成立,第二个n=8+1=9成立,所以执行if(a[n]>a[n+1]),所以比较的是a[9]>a[10],问题出来了,数组能取到a[10]吗?所以报数组下标越界
{
for(n=j+1;n<10;n++)
{
if(a[n]>a[n+1])
{
t=a[n];
a[n]=a[n+1];
a[n+1]=t;
}
}
}
请看,当j=8的时候,第一个循环8<10成立,第二个n=8+1=9成立,所以执行if(a[n]>a[n+1]),所以比较的是a[9]>a[10],问题出来了,数组能取到a[10]吗?所以报数组下标越界
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯