数据不能显示和指定位置插入数据问题

数据不能显示和指定位置插入数据问题

package 方法;

import java.util.Scanner;

public class Demo {
    //实例化接收数据对象
    static Scanner sc=new Scanner(System.in);
    //数组插入数据方法
    public int[] insertDate(){
        int a[]=new int[10];
        for(int i=0;i<a.length-1;i++){
            System.out.println("请输入第"+(i+1)+"个元素:");
            a[i]=sc.nextInt();
        }    
        System.out.println("数组元素为:");
        for(int n:a){
            if(n==0){continue;}
            else{
                System.out.print(n+"   ");
            }
        }
        System.out.println();
        return a;    
    }
    //显示数组数据方法
    public void showData(int a[]){
        System.out.println("数组元素为");
        for(int n:a){
            if(n==0)continue;
            else
            System.out.print(n+"   ");
        }
        System.out.println();
    }
    //
    public void upDate(int a[],int b,int c){
        System.out.println("请输入要插入的数据:");
        b=sc.nextInt();
        System.out.println("请输入要插入的位置:");
        c=sc.nextInt();
        for(int i=a.length-1;i<c;i--){
            a[i]=a[i-1];
        }
        a[c]=b;
    }
    //查询能被3整除的数据
    public void divThree(int a[]){
        System.out.print("能被3整除的数组元素为");
        for(int n:a){
            if(n%3==0){
                System.out.println(n+"  ");
            }
        }
    }
    //显示提示信息的方法
    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("         0--退出");
        System.out.println("***************************************");
        System.out.println("请输入对应的数字进行操作:");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建10个元素的数组a[]
        int a[]=new int[10];
        //实例化对象
        Demo D=new Demo();
        //通过按键选择不同的方法        
        int n;
        do{
            D.notice();
            n = sc.nextInt();
            switch (n) {
            case 1:
                D.insertDate();;break;
            case 2:
                D.showData(a);break;
            case 3:
                D.upDate(a,n,n);break;
            case 4:
                D.divThree(a);break;
            default:
                if(n>4&n!=0)System.out.println("请输入正确的数字");break;
            }
        }
        while(n!=0);
        
        if(n==0){
            System.out.println("程序退出");
            }
    
    }
}


问题一:插入数据后,选择2不能显示插入的数据,应该是哪里引用的不对,麻烦老师看下

问题二:在指定位置处插入数组数据方法,for(int i=a.length-1;i<c;i--){
            a[i]=a[i-1];
        }
        a[c]=b;

           为什么要这么写,不太理解,麻烦解答下

正在回答

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

2回答

case 1中应该是a= D.insertDate();

在指定位置插入数据:是依次移位,然后将数据插入到指定位置处。

祝学习愉快~

  • 慕盖茨3527855 提问者 #1
    老师好,第一个问题解决了 第二个问题,在指定位置处插入数组的数据方法,我的代码执行后,插入的数据替换了,但是没有移位,还想请教下 然后,还是不理解为什么循环初始条件是i=9,循环条件是i<插入的位置,i--,请解答下
    2017-11-03 18:08:38
  • 慕盖茨3527855 提问者 #2
    问题找到了-0-
    2017-11-03 18:20:31
  • 慕盖茨3527855 提问者 #3
    非常感谢!
    2017-11-03 18:41:49
提问者 慕盖茨3527855 2017-11-03 17:38:51

package 方法;

import java.util.Scanner;

public class Demo {
    //实例化接收数据对象
    static Scanner sc=new Scanner(System.in);
    //数组插入数据方法
    public int[] insertDate(){
        int a[]=new int[10];
        for(int i=0;i<a.length-1;i++){
            System.out.println("请输入第"+(i+1)+"个元素:");
            a[i]=sc.nextInt();
            if(a[i]==0){
                System.out.println("请输入不为0的整型数组元素");
                i--;
            }
        }    
        System.out.println("数组元素为:");
        for(int n:a){
            if(n==0){continue;}
            else{
                System.out.print(n+"   ");
            }
        }
        System.out.println();
        return a;    
    }
    //显示数组数据方法
    public void showData(int a[]){
        System.out.println("数组元素为");
        for(int n:a){
            if(n==0)break;
            else
            System.out.print(n+"   ");
        }
        System.out.println();
    }
    //在指定位置处插入数组数据方法
    public void upDate(int a[],int b,int c){
        System.out.println("请输入要插入的数据:");
        b=sc.nextInt();
        System.out.println("请输入要插入的位置:");
        c=sc.nextInt();
        
        for(int i=a.length-1;i>c;i--){
            a[i]=a[i-1];
        }
        a[c]=b;
    }
    //查询能被3整除的数据
    public void divThree(int a[]){
        System.out.print("能被3整除的数组元素为");
        for(int n:a){
            if(n%3==0){
                System.out.print(n+"  ");
            }
        }
    }
    //显示提示信息的方法
    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("         0--退出");
        System.out.println("***************************************");
        System.out.println("请输入对应的数字进行操作:");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建10个元素的数组a[]
        int a[]=new int[10];
        //实例化对象
        Demo D=new Demo();
        //通过按键选择不同的方法        
        int n;
        do{
            D.notice();
            n = sc.nextInt();
            switch (n) {
            case 1:
                a=D.insertDate();;break;
            case 2:
                D.showData(a);break;
            case 3:
                D.upDate(a,n,n);break;
            case 4:
                D.divThree(a);break;
            default:
                if(n>4&n!=0)System.out.println("请输入正确的数字");break;
            }
        }
        while(n!=0);
        
        if(n==0){
            System.out.println("程序退出");
            }
    
    }
}


  1. 想请老师点评下

  2. 想请教下,为什么插入数据的时候,元素和位置都输入0,然后再输出数组的时候会为空?

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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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