简单的数组插入程序产生不正确的输出

Simple Array Insertion Program Producing Incorrect Output

这是一个非常简单的java程序,我声明任何有7个元素的数组,输入前六个,将第四到第六个元素移动到第五到第七个位置,并获得第四个空的值位置:

int A[]=new int[7];
        for(int i=0;i<6;i++)
        {
            System.out.println("Enter an integer");
            String a=Biff.readLine();
            A[i]=Integer.parseInt(a);
        }
        for(int i=4;i<6;i++)
        {
            A[i]=A[i+1];
        }
        System.out.println("Enter the integer to be inserted");
        String a=Biff.readLine();
        A[4]=Integer.parseInt(a);

但是,打印完所有数组元素后,第六和第七位都是0,我也不知道为什么。原因和修复将不胜感激。 注意:我不能使用任何数组方法,必须保持非常简单。

你的初始循环没有给第 7 个元素赋值,所以它仍然是 0。

然后你将第 7 个元素复制到第 6 个元素

 A[i]=A[i+1];

所以第6和第7个元素都应该是0

将循环更改为:

    for(int i=0;i<A.length;i++)
    { //         ^^^^^^^^^------------------------ change is here
        System.out.println("Enter an integer");
        String a=Biff.readLine();
        A[i]=Integer.parseInt(a);
    }

您以错误的方式移动了值。使用此代码并了解您的错误:

for(int i=6;i>=3;i--)    //Moving the 4th to 6th elements to 5th to 7th elements
    {
        A[i]=A[i-1];
    }
String a=Biff.readLine();    //Taking input for 4th empty position
A[3]=Integer.parseInt(a);

希望我答对了你的问题。