配列についての処理の(数字)の部分を埋めてプログラムを完成せよ。プロジェクト名:chap7 クラス名:Ex1~Ex17
問題1 出力
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; for(int i = 0; i < 10; i++) { (1) }
2 4 1 3 5 7 2 1 4 8 |
問題2 合計
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int sum; (1) for(int i = 0; i < 10; i++) { (2) } System.out.println("合計=" + sum);
合計=37 |
問題3 平均
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int sum; (1) for(int i = 0; i < 10; i++) { (2) } System.out.println("平均=" + (3) );
平均=3.7 |
問題4 最大値
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int max; max = (1) ; for(int i = 1; i < 10; i++) { if(a[i] > max) { (2) } } System.out.println("最大値=" + (3) );
最大値=8 |
問題5 最小値
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int min; min = (1) ; for(int i = 1; i < 10; i++) { if(a[i] < min) { (2) } } System.out.println("最小値=" + (3) );
最小値=1 |
問題6 1番目と2番目に大きな値
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int max1, max2, work; if( (1) ) { max1 = a[0]; max2 = a[1]; } else { max1 = a[1]; max2 = a[0]; } for(int i = 2; i < 10; i++) { if(a[i] > max1) { (2) } else if(a[i] > max2) { (3) } } System.out.println("1番目="+ (4) ); System.out.println("2番目="+ (5) );
1番目=8 2番目=7 |
問題7 サーチ(xと等しい要素の添字をすべて出力)
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int x = 1; for(int i = 0; i < 10; i++) { (1) }
2 7 |
問題8 サーチ (xと等しい最初の要素の添字を出力)
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int x = 1; for(int i = 0; i < 10; i++) { (1) }
2 |
問題9 サーチ (xと等しい最後の要素の添字を出力)
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int x = 1; for( (1) ) { (2) }
7 |
問題10 データ数(xと等しい要素の個数)
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int n; int x = 1; (1) for(int i = 0; i < 10; i++) { (2) } System.out.println(x + "は” + n + “個ある");
1は2個ある |
問題11 逆転
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; int[] b = new int[10]; for(int i = 0; i < 10; i++) { (1) } for(int i = 0; i < 10; i++) { System.out.println(b[i]); }
8 4 1 2 7 5 3 1 4 2 |
問題12 ソート(選択ソート)
int[] a = {2, 4, 1, 3, 5, 7, 2, 1, 4, 8}; (1) for(int i = 0; i < 10; i++) { System.out.println(a[i]); }
1 1 2 2 3 4 4 5 7 8 |
問題13 ソート(バブルソート)
問題12と同じ
問題14 配列aのデータが、昇順に並んでいるかどうかをチェックする。配列aのデータを変えて実行してみること。
int[] a = {23, 53, 72, 98, 88}; int i; int len = a.length; for(i = 0; i < len - 1; i++) { (1) } if(i < len - 1) { System.out.println("昇順でない"); } else { System.out.println("昇順"); }
昇順でない |
問題15 配列testのデータに順位を付けて出力する。
int[] test = { 80, 60, 22, 50, 75 }; int len = test.length; int[] rank = new int[len]; for (int i = 0; i < len; i++) { rank[i] = 1; } for (int i = 0; i < len; i++) { for (int j = 0; j < len; j++) { (1) } } for (int i = 0; i < len; i++) { System.out.println(rank[i] + " " + test[i]); }
1 80 3 60 5 22 4 50 2 75 |
問題16 金額を与え、金種別必要枚数を計算する。次のような配列を利用すること。
int[] ar = { 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1 };
問題17 同じ年の二つの日付の間の経過日数を求める。次の場合「59日」と出力されればOK。
int year = 2007; int startMonth = 5, startDay = 22; int endMonth = 7, endDay = 19; int[] days= { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; ここを考える