一个JAVA问题!
发布网友
发布时间:2022-07-30 01:09
我来回答
共3个回答
热心网友
时间:2024-12-04 07:09
lz你一定要搞清楚数组的
下标的概念,从你定义的数组的元素来看,其实你的数组看起来是个二维数组(2行三列),但是java里实际是没有*数组的,我们暂且把这个数组当二维数组看。
从下面你的复制来看,第一行num[0][3]=1;已经访问到第一行的第四个元素了,这是根本不存在的元素。因为数组的下标是从0开始的,num[0][3]=1;的3下标就是第四个元素。实际你的数组是一个int
[1][2]num的
数组。同理下面的
赋值语句都是有问题的。
第二行代码num[1][4]=2;为第5个元素赋值了,其实根本没有开辟内存空间。
第三行代码num[2][4]=3;为第三行第五个元素赋值了,也是没有开辟内存空间的。
我想看了上面的解释你应该明白了吧,主要就是你没弄清楚数组的下标问题,记住下表是从0开始的。
热心网友
时间:2024-12-04 07:09
package test;
public class Test {
public static void main(String[] args) {
int[] score=new int[50];
int[] result={0,0,0,0,0,0,0,0,0,0};
for( int i=0;i<50;i++ )
{
int temp = Double.valueOf( Math.random()*100 ).intValue();
score[i]=temp;
if( temp>0 && temp<=10 )result[0]+=1;
else if( temp>10 && temp<=20 )result[1]+=1;
else if( temp>20 && temp<=30 )result[2]+=1;
else if( temp>30 && temp<=40 )result[3]+=1;
else if( temp>40 && temp<=50 )result[4]+=1;
else if( temp>50 && temp<=60 )result[5]+=1;
else if( temp>60 && temp<=70 )result[6]+=1;
else if( temp>70 && temp<=80 )result[7]+=1;
else if( temp>80 && temp<=90 )result[8]+=1;
else if( temp>90 && temp<=100 )result[9]+=1;
}
for(int j:result)
{
System.out.println(j);
}
}
}
热心网友
时间:2024-12-04 07:10
嗯,超出范围了
int
[
][
]
num=new
int[
][
]{{1,2,3},{4,5,5}};
这样一个数组,实际上是int[2][3];
由于Java数组的下标从0开始计算,访问的时候最多访问到num[1][2],你可以数一下num[0..1][0..2],数字再大就越界了