Пытается создать программу, которая использует частично заполненный массив. Начало кода связано с получением пользователем ввода для размера массива и получением их для ввода значения, которое должно быть помещено в массив. Затем я хочу, чтобы значения были отсортированы по мере их ввода.Программа частично заполненных массивов завершает раннее время выполнения
public static void main(String[] args)
{
int userInput;
int[] userArray;
int numElements;
int index;
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter number of values in array (5 to 10): ");
userInput = keyboard.nextInt();
while (userInput < 5 || userInput > 10)
{
System.out.print("Enter number of values in array (5 to 10): ");
userInput = keyboard.nextInt();
}
System.out.println(); //Space, for neatness
userArray = new int[userInput];
for (int item: userArray)
System.out.print(item + " ");
System.out.print("\nEnter an integer value: ");
userInput = keyboard.nextInt();
int numElements = 0;
int index = 0;
if (numElements == userArray.length - 1)
System.out.println("The array is full.");
else
{
while (index < numElements && userArray[index] < userInput)
{
if (userArray[index] != 0) //Shift the array to the right, and add value at the current index as to not overwrite values.
{
for (int i = numElements; i > index; i--)
userArray[i] = userArray[i - 1];
userArray[index] = userInput;
}
userArray[index] = userInput;
index++;
numElements++;
System.out.print("Updated array: ");
for (int item: userArray)
System.out.print(item + " ");
System.out.println("\nEnter an integer value: ");
userInput = keyboard.nextInt();
}
}
}
Проблемы с выходом. После ввода значения программа завершается. Например (я печатаю пустой массив специально):
Enter number of values in array (5 to 10): 5
0 0 0 0 0
Enter an integer value: 5
Извините за недостаток комментариев.
Пожалуйста, вставьте полный код. –