Я пытаюсь вставить 5 чисел за раз, чтобы создать массив в порядке возрастания, но у меня проблема с моим третьим номером и так далее. Тест для вставки: Несколько меньше первого элемента числа больше, чем последний элемент Ряда между первым и последним элементом Рядом уже в массиве Вот мой код до сих пор:Вставка и сортировка по возрастанию
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");
}
}
Мой вывод кода:
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
'numtoinsert <а [numberofelements]' в то время этого теста, 'а [numberofelements] ', поскольку никакое значение не установлено так, равно 0. Это вам проблема. – AxelH
Попробуйте запустить программу с помощью отладчика, чтобы узнать, где это происходит. – Henry