老师,请问下调用方法“插入数据”和“在指定位置插入数据”时,数据长度如何定义呢?

老师,请问下调用方法“插入数据”和“在指定位置插入数据”时,数据长度如何定义呢?

package Operation;


import java.util.Scanner;


/**

 * 管理系统: 1.插入数据 2.显示所有数据 3.在指定位置处插入数据 4.查询能被3整除的数据 0.退出程序

 * 

 * @author zuofei

 * 

 * 问题描述:

 * 老师请问在“插入数据”方法中,数组长度为10,那输出最后一位会显示为0;

 * 改为长度为9,在”指定位置插入数据时“最后一位插入时,又会报错。

 * 这个应该如何修改呢?

 */

public class Operation {

public static void main(String[]args){

        Operation am=new Operation();

        am.notice();//调用提示信息方法

        Scanner sc=new Scanner(System.in);

        int n =sc.nextInt();//输入控制的数字

        int []a=new int[10];

        while(true & n!=0)

            switch (n)

            {

                case 1:

                    a=am.inserData();  

                    am.notice();  

                    n=sc.nextInt();

                    break;

                case 2:

                    am.showData(a,10);

                    am.notice();

                    n=sc.nextInt();

                    break;

                case 3:

                    am.insertAtArray(a,n,n);

                    am.notice();

                    n=sc.nextInt();

                    break;

                case 4:

                    am.divThree(a);

                    am.notice();

                    n=sc.nextInt();

                    break;

                case 0:

                System.exit(0);

                default:

                    System.out.println("超出范围,请输入0-4的整数!");

                    am.notice();

                    n=sc.nextInt();

                    break;

        }

    }

    //创建方法

    //方法一:提示信息

    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 int[]inserData(){

        int a[]=new int[10];

        for(int i=0;i<a.length-1;i++){

            Scanner sc=new Scanner(System.in);

            System.out.println("请输入第"+(i+1)+"个数据:");

            int n=sc.nextInt();

            a[i]=n;

            if(a[i]==0 & a[i]<=10){

                System.out.println("输入的数字不能为0!");

            }

        }

        System.out.println("数组内容为:");

        for(int i:a){

            System.out.print(i+" ");

        }

        System.out.println( );

        return a;

    }


    //方法二:显示所有数据

        public void showData(int[]a,int length){

           System.out.println("数组的元素为:");

            for(int i=0;i<a.length;i++){

                System.out.print(a[i]+" ");

            }

            System.out.println( );

        }


    //方法三:在指定位置插入数据

        public void insertAtArray(int[]a,int n,int k){

        System.out.println("请输入要插入的数据:");

        Scanner sc=new Scanner(System.in);

        n=sc.nextInt();

        System.out.println("请选择要插入的位置:(1-9的整数!)");

        Scanner sc1=new Scanner(System.in);

        k=sc1.nextInt();

        for(int i=a.length-1;i>=k;i--){

            a[i]=a[i-1];

        }

        a[k]=n;

        for(int i=0;i<a.length;i++){

            System.out.print(a[i]+" ");

        }

        System.out.println();

        }


    //方法四:查询能被3整除的数据

        public void divThree(int []a) {

        System.out.print("能被3整除的数据有:");

        for(int i:a){

            if(i%3==0){

                System.out.print(i+" ");

            }

        }

        System.out.println();


}


}


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

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

1回答
程咬金的三板斧 2018-11-06 22:51:11

数组为a

数组长度a.length=10

再定义一个变量len

判断数组最后一个元素a[a.length-1]是否为0

还没插入数据前 a[a.length-1]==0     len=a.length-1

插入数据后 a[a.length-1]!=0  len=a.length

最后输出数组元素

    for(int i=0;i<a.len;i++){

                System.out.print(a[i]+" ");

            }


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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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