新・明解 Java 入門 演習 7-18, 7-19, 7-20, 7-21 解答
Hello, Terminal!swaponQです!
今回は演習 7-18, 7-19, 7-20, 7-21 に取り組んでいこうと思います。
- 演習 7-18
配列aから要素a[idx]を削除するメソッドaryRmvを作成せよ。
import java.util.Scanner; class ex07_18{ static void aryRmv(int[] a,int idx) { for(int i = idx; i<a.length-1;i++){ a[i] = a[i + 1]; } } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int num = stdIn.nextInt(); int[] x = new int[num]; for (int i = 0; i < num; i++) { System.out.print("x[" + i + "] : "); x[i] = stdIn.nextInt(); } System.out.print("削除したい要素:"); int idx = stdIn.nextInt(); aryRmv(x,idx); for (int i = 0; i < num-1; i++) System.out.println("x[" + i + "] = " + x[i]); } }
・実行結果
要素数:3 x[0] : 2 x[1] : 6 x[2] : 3 削除したい要素:3 x[0] = 2 x[1] = 6
- 演習 7-19
配列aから要素a[idx]を先頭とするn個の要素を削除するメソッドaryRmvNを作成せよ。
import java.util.Scanner; class ex07_19{ static void aryRmvN(int[] a,int idx,int n) { for(int i = idx; i<a.length-n;i++){ a[i] = a[i + n]; } } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int num = stdIn.nextInt(); int[] x = new int[num]; for (int i = 0; i < num; i++) { System.out.print("x[" + i + "] : "); x[i] = stdIn.nextInt(); } System.out.print("削除したい要素:"); int idx = stdIn.nextInt(); System.out.print("削除したい個数:"); int n = stdIn.nextInt(); aryRmvN(x,idx,n); for (int i = 0; i < num-n; i++) System.out.println("x[" + i + "] = " + x[i]); } }
・実行結果
要素数:3 x[0] : 1 x[1] : 6 x[2] : 3 削除したい要素:6 削除したい個数:2 x[0] = 1
- 演習 7-20
配列の要素a[idx]にxを挿入するメソッドaryInsを作成せよ。
import java.util.Scanner; class ex07_20{ static void aryIns(int[] a,int idx,int x ) { int t = a.length-1; for(int i = a.length-1; i>idx; i--){ a[i] = a[i - 1]; } a[idx] = x; } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int num = stdIn.nextInt(); int[] a = new int[num]; for (int i = 0; i < num; i++) { System.out.print("a[" + i + "] : "); a[i] = stdIn.nextInt(); } System.out.print("挿入したい要素:"); int n = stdIn.nextInt(); System.out.print("挿入したい場所:"); int idx = stdIn.nextInt(); aryIns(a,idx,n); for (int i = 0; i < num; i++) System.out.println("a[" + i + "] = " + a[i]); } }
・実行結果
要素数:3 a[0] : 2 a[1] : 4 a[2] : 6 挿入したい要素:0 挿入したい場所:0 a[0] = 0 a[1] = 2 a[2] = 4
- 演習 7-21
配列aと配列bの全要素をの値を交換するメソッドaryExchngを作成せよ。
import java.util.Scanner; class ex07_21{ static void aryExchng(int[] a, int[] b) { int buf = 0; int length = a.length; if (length > b.length) { length = b.length; } for(int i = 0; i < length; i++) { buf = b[i]; b[i] = a[i]; a[i] = buf; } } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.print("配列aの要素数:"); int na = stdIn.nextInt(); int[] a = new int[na]; for (int i = 0; i < na; i++) { System.out.print("a[" + i + "] : "); a[i] = stdIn.nextInt(); } System.out.print("配列bの要素数:"); int nb = stdIn.nextInt(); int[] b = new int[nb]; for (int i = 0; i < nb; i++) { System.out.print("b[" + i + "] : "); b[i] = stdIn.nextInt(); } aryExchng(a,b); System.out.println(); for (int i = 0; i < na; i++) System.out.println("a[" + i + "] : "+a[i]); for (int i = 0; i < nb; i++) System.out.println("b[" + i + "] : "+ b[i]); } }
・実行結果
配列aの要素数:3 a[0] : 4 a[1] : 1 a[2] : 4 配列bの要素数:4 b[0] : 1 b[1] : 5 b[2] : 3 b[3] : 5 a[0] : 1 a[1] : 5 a[2] : 3 b[0] : 4 b[1] : 1 b[2] : 4 b[3] : 5
今回は以上です。お疲れ様でした!
次回は演習 7-22, 7-23, 7-24, 7-25 です。
Goodbye, Terminal… swaponQでした!