I am trying to insert 5 numbers at a time to create an array in ascending order, but I have a problem with my third number and so on. The test should insert: The number is less than the first element. The number is greater than the last element. The number between the first and last elements. The number is already in the array. Here is my code:
import java.util.Scanner;
public class InsertInOrder {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int [] a=new int[5];
int numberofelements=0;
System.out.print("Number to insert: ");
int numtoinsert=input.nextInt();
if (numtoinsert!=0)
{
a[0]=numtoinsert;
++numberofelements;
System.out.print("Array is now: ");
System.out.println(a[0]);
}
while(numberofelements<a.length)
{
System.out.print("Number to insert: ");
numtoinsert=input.nextInt();
if ((numtoinsert<a[numberofelements]) || (numtoinsert==a[numberofelements]))
{
for(int i=0;i<numberofelements;i++)
{
a[i]=a[i+1];
}
}
else
a[numberofelements]=numtoinsert;
numberofelements++;
System.out.print("Array is now: ");
for(int i=0;i<numberofelements;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
System.out.print("\nArray is now full");
}
}
My code output:
Number to insert: 5
Array is now: 5
Number to insert: 2
Array is now: 5 2
Number to insert: 7
Array is now: 5 2 7
Number to insert: 4
Array is now: 5 2 7 4
Number to insert: 5
Array is now: 5 2 7 4 5
Array is now full
source
share