部分的に塗りつぶされた配列を使用するプログラムを作成しようとしています。コードの始めは、配列サイズのユーザー入力を取得し、配列に配置する値を入力するようにします。次に、入力した値をソートする必要があります。部分的に塗りつぶされた配列プログラムは、初期ランタイムを終了します
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
ご迷惑をおかけして申し訳ありません。
完全なコードを貼り付けてください。 –