问题是 :
编写一个程序,读取一个数字 n,然后声明一个包含 n 个元素的数组。然后程序用前 n 个数字填充数组,其中每个数字都是前一个数字的 2 次方。最后,显示数组的内容。
我的代码:
import java.util.*;
public class Q1 {
static Scanner scan = new Scanner (System.in);
public static void main(String args [] ) {
int num;
int i = 0;
System.out.println("Enter a number :");
num = scan.nextInt();
double [] a=new double[num];
a[0]= num ;
for ( ;i<=a.length-1 ; i++) {
a[i+1] = Math.pow(2,a[i]);
System.out.println((int)(a[i]) );
}
}
}
错误是:
----jGRASP exec: java Q1
Enter a number :
4
4
16
65536
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Q1.main(Q1.java:16)
----jGRASP wedge2: exit code for process is 1.
为什么这么说?并且用户的数字打印了两次!