指定位置插入数据那块出错,请帮忙找一下问题

指定位置插入数据那块出错,请帮忙找一下问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public void insertArray(int[] a) {
        System.out.println("请输入要插入的数据:");
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        System.out.println("请输入要插入数据的位置(0-9):");
        int k = s.nextInt();
         
        for (int i = (a.length - 1); i >k; i--) {
            a[i+1] = a[i];
        }
        a[k] = n;
    }
 
    public void divThree(int[] a) {
        System.out.println("数组中能被3整除的元素为:");
        for (int i = 0; i < a.length; i++) {
            if (a[i] % 3 == 0) {
                System.out.print(a[i] + " ");
            }
        }
    }
 
    public void notice() {
        System.out
                .println("****************************************************");
        System.out.println(1 "--插入数据 ");
        System.out.println(2 "--显示所有数据 ");
        System.out.println(3 "--在指定位置处插入数据 ");
        System.out.println(4 "--查询 能被3整除的数据");
        System.out.println(5 "--退出");
        System.out
                .println("****************************************************");
        System.out.println("请输入对应的数字进行操作:");
    }
 
    public static void main(String[] args) {
        Array array = new Array();
        int a[] = new int[10];
        while (true) {
            array.notice();
 
            Scanner s = new Scanner(System.in);
            int m = s.nextInt();
            switch (m) {
            case 1:
                a = array.insertData();
                array.showData(a);
                break;
            case 2:
                array.showData(a);
                break;
            case 3:
                array.insertArray(a);
                array.showData(a);
                break;
            case 4:
                array.divThree(a);
                break;
            case 5:
                System.exit(0);
            default:
                System.out.println("输入错误,请重新输入");
            }
 
        }
    }


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
耶嘿呦呦奥 2017-08-01 14:51:48

在指定位置插入数据方法中,在for循环中进行数组移位的时候,应该将 a[i+1] = a[i]修改为 a[i] = a[i-1],不然,就会导致插入数据的时候造成数组索引越界异常。

如果解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 syni_dora #1
    改不改这个,都有问题,每次输入新数据和插入位置后再往下就无法执行了
    2017-08-01 16:18:34
  • 提问者 syni_dora #2
    问题已解决
    2017-08-01 16:51:26
  • nooone 回复 提问者 syni_dora #3
    怎么解决的?
    2018-06-01 15:35:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码