質問内容
AOJのこちらの値をスワップしてあみだくじを解くプログラムをJavaで作るために以下のようなコードを書きましたが、オンラインジャッジ上でRuntime Errorになってしまいました。カンマの入力を受け入れてくれないのかと思います。どのように直せばよろしいのでしょうか。
該当のソースコード
Java
1import java.util.Scanner; 2 3public class Main { 4 public static void main(String[] args){ 5 Scanner sc = new Scanner(System.in); 6 int w = sc.nextInt(); 7 int n = sc.nextInt(); 8 int[] stick = new int[w]; 9 for(int i = 0; i < w; i++){ 10 stick[i] = i + 1; 11 } 12 for(int i = 0; i < n; i++){ 13 String input = sc.nextLine(); 14 String[] aSt = input.split(",",0); 15 int[] a = new int[2]; 16 a[0] = Integer.parseInt(aSt[0]); 17 a[1] = Integer.parseInt(aSt[1]); 18 int sw = stick[a[0] - 1]; 19 stick[a[0] - 1] = stick[a[1] - 1]; 20 stick[a[1] - 1] = sw; 21 } 22 for(int i = 0; i < w; i++){ 23 System.out.println(stick[i]); 24 } 25 sc.close(); 26 } 27}
試したこと
19行目から21行目にかけての配列外参照を修正しました。
また、swapを関数を使わずに書きました。
カンマの入力も受け入れてもらえる方法を調べて書きましたが、コンパイラに整数値でないといわれてしまいました。
補足情報(FW/ツールのバージョンなど)
javac 14.0.1
回答1件
あなたの回答
tips
プレビュー