100以下の正の整数となる乱数を9つ発生させ,以下のように乱数を表示するとと もに,各行と列の和を表示するプログラムを作成しましょう.
10 69 18 97 45 38 23 106 28 8 30 66 83 115 71 |
前問を改造して,対角線上の斜めの3つの数の和を求めるようにしましょう.
99 28 94 77 15 84 95 3 6 204 120 |
以下に示す配列を用意して,その要素として1~100の範囲の自然数を乱数により代入します.
int ary[3][10]; |
要素の数値を最初は10個ずつ3行に表示し,つぎにはそれを縦横入れ換えて表示するプログラムを作成しましょう.
76 8 73 58 72 5 40 99 77 75 59 61 84 12 36 100 36 72 60 55 85 98 98 25 100 73 11 83 41 50 76 59 85 8 61 98 73 84 98 58 12 25 72 36 100 5 100 73 40 36 11 99 72 83 77 60 41 75 55 50 |
0から9までの整数を乱数により30回発生させることを20回繰り返してマトリックス状に表示します.その中で一番0が多かった行と列に印 ( * ) をつけるプログラムを作成しましょう.
518725921581075944487811046036 789553367626725331999683709502 192277605567131985074064554417 846073955401447535253951326067 944561158808062717463950003701 * 696072300180208691447734965237 419246698618839698854740246781 642568338119004185163667683272 536793848661781392820386164403 659550034892960391596534263823 411366369760078209678233879174 735861617793712553430475064194 567066127098581837392560166797 356352995896775850782038066865 712340659340939614714910936714 486742708854047030401112125998 639203495470886509641774286905 069181641190370150317604125945 543653917248378503636506931625 199676977793742502086838541815 * |
同数の場合はどちらかが表示されていれば構いません.解答例
1から5までの整数2個の組を5回乱数により発生させそれをxy座標とします.それらの座標を表示するプログラムを作成しましょう.
(3,2) (3,5) (3,1) (5,3) (4,2) 5 | * 4 | 3 | * 2 | * * 1 | * 0 +----------- 0 1 2 3 4 5 |
5x5の配列の要素を最初全て0にしておいて,出た座標のところだけ1にします.フラグと同じ効果です.
座標の重複は気にしなくても構いません.
2次元の配列を用いると,あるデータの組をまとめて並べ替えることができます.以下の例で試してみましょう.
2桁の正の整数を乱数により3個発生させることを10回行い,数字を表示します.次に,その3個の数の和の大きい順に表示し直すプログラムを作成しましょう.
1: 74 45 98 -- 217 2: 58 44 54 -- 156 3: 58 91 13 -- 162 4: 77 89 96 -- 262 5: 29 60 22 -- 111 6: 60 12 14 -- 86 7: 35 65 71 -- 171 8: 35 24 62 -- 121 9: 20 27 22 -- 69 10: 84 25 23 -- 132 1: 77 89 96 -- 262 2: 74 45 98 -- 217 3: 35 65 71 -- 171 4: 58 91 13 -- 162 5: 58 44 54 -- 156 6: 84 25 23 -- 132 7: 35 24 62 -- 121 8: 29 60 22 -- 111 9: 60 12 14 -- 86 10: 20 27 22 -- 69 |
用意する配列は ary[10][4] のようにします.内側の配列の最後に和を入れておくと便利なので.配列ごとの入れ替えなのでその処理は3重の反復処理になります.