首页 > 猿辅导洗牌的那道题 本地跑出来很好,为什么网页上显示数组越界
头像
爪洼
编辑于 2020-09-12 22:24
+ 关注

猿辅导洗牌的那道题 本地跑出来很好,为什么网页上显示数组越界

//猿辅导洗牌的那道题 本地跑出来很好, 为什么网页上显示数组越界啊 求大神指导 import java.util.Scanner;
public class test1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        Scanner scanner2=new Scanner(System.in);

        //下面是对第一行数字读取 将两个数字放在了num数组里面
        String inputString=scanner.nextLine();
        String stringArray[]=inputString.split(" ");
        int num[]=new int[stringArray.length];
       for(int i=0;i<stringArray.length;i++){
           num[i]=Integer.parseInt(stringArray[i]);
       }

       //下面这行是读取第二行数字,将那些数字放在了num2数组里面
        String inputString2=scanner2.nextLine();
        String stringArray2[]=inputString2.split(" ");
        int num2[]=new int[stringArray2.length];
        for(int i=0;i<stringArray2.length;i++){
            num2[i]=Integer.parseInt(stringArray2[i]);
        }


        //下面定义了两个数组分别用来放 那两部分数字 (前半段数字跟后半段数字)
        int temp1[]=new int[stringArray2.length/2];
        int temp2[]=new int[stringArray2.length-stringArray2.length/2];


        //下面就是不断循环  进行洗牌

        int i=0;
        while(i<num[1]){
           // int j=0;
            for(int j=0;j<stringArray2.length/2;j++){
                temp1[j]=num2[j];
            }
            for(int j=0;j<(stringArray2.length-stringArray2.length/2);j++){
                temp2[j]=num2[j+stringArray2.length/2];
            }
            int ii=0,jj=0;
            while(ii<stringArray2.length/2||ii<(stringArray2.length-stringArray2.length/2)){
                if(ii<temp2.length){
                num2[jj]=temp2[ii];
                jj++;}
                if(ii<temp1.length) {
                    num2[jj] = temp1[ii];
                    jj++;
                }
                ii++;
            }
            i++;
        }
        for(int iii=0;iii<num2.length;iii++)
            System.out.print(num2[iii]+" ");
    }
}



全部评论

(0) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐