一道简单的JAVA基础编程题
发布网友
发布时间:2022-04-30 21:21
我来回答
共2个回答
热心网友
时间:2023-10-13 21:51
public class test {
public static void main(String[] args) {
int [] n={1,0,0,3,0,4,0,0,0,3,1,5,0,8,0,0,0};
int [] m=new int[n.length];
int i=0,j =0;
while(i<n.length)
{
if(n[i]==0 && (i<n.length-1) && n[i+1]==0)
{
while(i<n.length-1 && n[i+1]==0)
{
i++;
}
if(i<n.length)
i++;
}
if(i<n.length){
m[j]=n[i];
j++;
}
i++;
}
for (int k = 0; k < j; k++) {
System.out.print(m[k]);
}
}
}
热心网友
时间:2023-10-13 21:52
是你的第一个for循环的数组越界,当i指向数字8的时候,下标是13,i+1就是14了,你的数组长度是14,根本就不存在下标14的位置啊(注意java下标从0开始,第一个位置是0下标)
while(i<n.length)这个改成while(i<n.length-1)就应该没问题了