前提・実現したいこと
javaの教材「やさしいjava」で、ソート機能をターミナルで出力させよう。というないようです。
本に詳細な内容が書かれていないためうまく組み込めないので、
ネットでググったところ、
https://www3.cuc.ac.jp/~miyata/classes/prg1/11/sort-stdin.html
こちらの記事が活用できそうだと思いました。
入力したい量は5つとしており、現状100を5に変えたのみとなります。
しかし、ターミナルで実行したところ、6つの値の入力ができてしまい、警告とともに終了してしまいます。
入力したい量を6や7に変えたところ7つ8つと、それぞれ1つ多く入力されることがわかりました。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 at sample9.main(sample9.java:14) ターミナル プロセス "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command java -cp '.;c:\Program Files\Java\JavaSample\00' sample9" が終了コード 1 で終了しました。
該当のソースコード
java
1import java.util.*; 2 3public class sample9 4{ 5 // thorows IOExceptionで値を取得する宣言をする 6 public static void main(String[] args) { 7 System.out.println("整数を5つ入力してください。"); 8 9 Scanner sc = new Scanner(System.in); 10 int a[] = new int[5]; 11 int n = 0; 12 13 while (sc.hasNext()){ 14 a[n] = sc.nextInt(); 15 n++; 16 } 17 18 for (int i = 0; i < n -1; i++){ 19 int pos = i; 20 for (int j = i + 1; j < n; j++){ 21 if (a[j] < a[pos]){ 22 pos= j; 23 } 24 } 25 int w = a[i]; 26 a[i] = a[pos]; 27 a[pos] = w; 28 } 29 for (int i = 0; i < n; i++){ 30 System.out.println(a[i]); 31 } 32 33 } 34}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。