问题:
在放弃期结束后更新学生成绩列表的程序。程序应该从用户数量和他们的索引中读取被放弃的学生,然后程序应该将剩余学生的成绩复制到新的数组中。此外,程序应同时显示原始列表和更新列表。[提示:新数组的长度必须与剩余学生人数相当]
我的代码:
public class Q5{
static Scanner scan = new Scanner (System.in);
public static void main (String args[]){
double [] list={1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10};
System.out.println("enter number of students who dropped:");
int num=scan.nextInt();
double [] list2 = new double [num];
System.out.println("Enter index Of the student who dropped ");
for (int j=1 ; j<=num ; j++)
{
System.out.println("student" + j + ":");
int index=scan.nextInt();
list[index]=0;
}
int j=0;
for(int i=0; i<list.length ; i++)
if (list[i]!=0)
{
list2[j]=list[i];
j++;
}
System.out.print("The original list : " );
for(int i=0; i<list.length ; i++)
System.out.print(list[i] + " " );
System.out.print("remaining students " );
for(int i=0; i<list2.length ; i++)
System.out.print(list2[i] + " " );
}
}
问题是什么 ?它不工作!在第 16 行它说:
线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 4 在 Q5.main(Q5.java:23)
我该如何纠正这个