java数组程序应该没问题,出现的提示我不会修改

public class e1 {

public static void main(String[] args) {

    int[]a=getSons(10);

    printArray(a);
}//计算一个数因子的个数
public static int getlength(int n){
    int count=0;
    for(int i=1;i<n/2;i++){
        if(n%i==0)
            count++;
    }
    return count;
}//求一个数字的所有yin子,放入数组
public static  int[]getSons(int n){
    int []a=new int [getlength(n)];
    int j=1;
    for(int i=1;i<=n/2;i++){
        if(n%j==0)
        a[j]=i;
        j++;


    }
        a[j]=n;//把自己放进去
        return(a);

}//打印数组

public static void printArray(int[]a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+ " ");
}
System.out.println();
}
}

/*运行后提示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at e1.getSons(e1.java:23)
at e1.main(e1.java:6)*/

//需要怎么修改

0

7个回答

23行下标越界了,,,,,

2

错误:数组指针越界

public static int getlength(int n){
int count=0;
for(int i=1;i if(n%i==0)
count++;
}
return count;
}//求得 count=2;
在getSons(int n)方法中 a.length()=2;
但是在这个方法中,你调用了这个数组三次,也就是说,,这个方法是的 a 数组的长度为3>2;
所以,解决办法就是:
int []a=new int [getlength(n)+1];
或者:
a[j]=n;//删掉

1

if 判断一下数组下标 - -

1

数组越界了 getlength 这个方法的最后结果是2 也就意味着 你这个数组a长度是2
但是你的j又是从1开始 其实j应该是重0开始

1

public static int getlength(int n)中计算因子数时,是从1到n/2,没有把n自己算进去。
所以数组越界了。

1

getSons()里的for循环数组越界了,j要从0开始,最后的a[j] = n去掉。

1

数组指针越界,在编程语言里,几乎所有的集合下标都是从0开始,在写程序时应时刻注意集合下标是否越界....

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

2
JAVA五子棋点击时出现棋子代码如何写
1
为什么我的IDEA创建项目时没有Create project from template这一选项
3
江湖救急 求问java大神 怎么监控数据库的变动 例如进行了 修改增加
3
eclipse的svn上传代码,但是死机了我就给关了,然后现在连不上了
5
为什么下面的程序会在异常出现后一直循环输出蓝色那句话…
13
javaweb实现多条件动态查询应该怎么做
5
项目没有错误当用maven clean或者其他maven功能时,就出现错误了。
1
was发布程序,登录后报错,后台日志: SRVE0232E: 内部服务器错误
3
java poi修改Excel单元格格式无效
6
spring,springmvc和hibernate整合出现了如下问题,怎么解决呢?
3
为什么我的XSSFSheet没有getDrawingPatriarch方法。官网的api上有啊!!
5
后台传来的json数组的id值 和 前端修改的值就行整合
3
[java]这个程序如何修改通过,让它读取文件
2
java数组问题,龟兔赛跑跑道
7
java web 中,如何判断一个表里面的数据有没有被修改?
2
我在开发一项自启管理,图中错误怎么解决?
2
问下这个程序的问题为什么a[0]是二维
4
JAVA中在使用Socket从客户端项服务端传文件时,程序阻塞在获取Socket套接字输入流那一行是为什么?
5
我用循坏做了一题,为什么只能4-10月份的,其他月份的输入没有起作用?
9
安卓开发,new File()后提示open failed...Permission denied.