新・明解 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でした!