指定位置插入后,最后一个数字被覆盖了,有大神解决的吗?

指定位置插入后,最后一个数字被覆盖了,有大神解决的吗?

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package MathDemo;
  
import java.util.Scanner;
  
public class Admin {
//定义显示提示信息方法
    public void notice() {
        System.out.println("******************************");
        System.out.println("   1--插入数据(不得超过5个数)");
        System.out.println("   2--显示所有数据          ");
        System.out.println("   3--在指定位置处插入数据  ");
        System.out.println("   4--查询能被3整除的数据                    ");
        System.out.println("   0--退出                  ");
        System.out.println("******************************");
  
    }
  
    // 定义插入数据方法
    public int[] insertDate(int[] n) {
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < n.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个数据");
            n[i] = sc.nextInt();
            if (n[i] == 0) {
                System.out.println("输入的数据不能为0! 请重新输入!");
                i--;// 重新从第一个数开始赋值
                continue;
  
            }
        }
        System.out.print("你输入的元素为:");
        for (int n1 : n) {
            System.out.print(n1 + "  ");
  
        }
        return n;
  
    }
  
    // 定义显示所有数据方法
    public void showDate(int[] a, int length) {
        System.out.println("数据库中所有数据如下:");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + "  ");
  
        }
  
    }
      
    //定义在指定位置处插入数据方法
    public void insertAtArray(int[]a,int n,int k) {
        System.out.println("请输入要插入的数:");
        Scanner sc=new Scanner(System.in);
        n=sc.nextInt();
        System.out.println("请输入要插入数的位置:");
        k=sc.nextInt();     
        for(int i=a.length-1;i>k-1;i--) {
            a[i]=a[i-1];
        }
        a[k-1]=n;       
        System.out.println("插入后数据整体为:");
        for(int a1:a) {
            System.out.print(a1+"  ");
              
        }
          
    }
      
    //定义能被3整除的数据方法
    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]+"  ");
                  
            }else {
                System.out.println("没有能被3整除的数!");
                break;
            }
              
        }
          
    }
  
    public static void main(String[] args) {
        Admin ad = new Admin();
        int[] n = new int[5];// 给数组初始化长度
  
        while (true) {
            System.out.println();
            Scanner sc = new Scanner(System.in);
            ad.notice();
            System.out.println("请输入对应的数字进行操作:");
            int sc1 = sc.nextInt();
            switch (sc1) {
            case 1:
                ad.insertDate(n);
                break;
            case 2:
                ad.showDate(n, n.length);
                break;
            case 3:
                ad.insertAtArray(n, 11);
                break;
            case 4:
                ad.divThree(n);
                break;
            case 0:
                System.out.println("程序结束!");
                System.exit(0);
                break;
                default:System.out.println("输入错误,请重新输入!!");
            }
        }
    }
  
}


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

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

2回答
n_nmingzibuhaoqi 2019-05-28 13:22:16

同学我想问下ad.insertDate(n)  这个是什么意思,调用方法一的数组值给在主方法中定义的数组赋值吗

  • 提问者 慕仰8014678 #1
    将从键盘接收到的数组 n赋值给插入数据方法里的int[] n里的n
    2019-05-28 15:04:03
  • n_nmingzibuhaoqi 回复 提问者 慕仰8014678 #2
    啊?插入数据里面不是有从键盘自己键入的数据了吗 他和你主方法里面那个int【】n=new int【5】没有关系吗
    2019-05-28 16:10:16
吃吃吃鱼的猫 2019-05-26 17:50:04

同学你好,根据作业要求,在“插入数据”方法中,插入个数应该比定义的数组长度少一个。留下一个数组元素为之后“在指定位置处插入数据”做准备。

http://img1.sycdn.imooc.com//climg/5cea61290001e7de06200369.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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