为了账号安全,请及时绑定邮箱和手机立即绑定

Java数组中的问题,运行后有错误

Java数组中的问题,运行后有错误

己一人丶 2018-10-12 15:47:27
import java.util.Arrays;import java.util.Random;import java.util.Scanner;public class WX9_1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Random r=new Random(); int[] A=new int[20];//初始化20个整数空间 int[] B=new int[10];//初始化10个整数空间 System.out.println("随机生成20个整数放入数组中:"); for(int i=0;i<=20;i++) { A[i]=r.nextInt(100); System.out.print(A[i]+" "); } System.out.println(); System.out.println("将数组A的后10个整数复制到数组B中:"); System.arraycopy(A, 10, B, 0, 10);    for (int i=0;i<B.length;i++) System.out.print(B[i]+"  "); System.out.println(); System.out.println("将数组B升序排序");    Arrays.sort(B);    for (int i=0;i<B.length;i++) System.out.print(B[i]+"  "); System.out.println(); Scanner reader=new Scanner(System.in); System.out.println("输入要查找的数:"); int num=reader.nextInt(); System.out.println("使用二叉查找法在数组B中查找"+num); int index= Arrays.binarySearch(B,num); if(index>-1)System.out.println(num+"的下标是:"+index); else System.out.println(num+"不在数组中"); }}
查看完整描述

1 回答

?
fantasycountre

TA贡献1条经验 获得超0个赞

不知道你是什么错误,但是我发现一个问题在这里。

System.arraycopy(A, 10, B, 0, 10); 

实际上是从第11个元素开始复制。数组是从0开始的。也许对你有所帮助

查看完整回答
反对 回复 2018-10-12
  • 挡不住的风
    挡不住的风
    System.arrayCopy(原数组,从元数据的起始位置开始,目标数组,目标数组的开始起始位置,要copy的数组的长度) 这个从10开始是没问题的哦 有问题的是这里for(int i=0;i<=20;i++) 放20个不需要等于 报错应该有数组越界,改为<后 应该还有报错,应该要对输入做判断,判断输入的是否是int类型
  • 1 回答
  • 0 关注
  • 726 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信