関連項目: for, while, break
b1) 「0, 2, 4, 6, 8...」というように、0以上100未満の偶数を、小さい順(昇順)順に画面に表示するプログラムを作成しなさい。
【ポイント】 forループは次のように表されるが,
for (開始処理; 継続条件; 更新処理) { 繰り返し処理 }これは,次のwhileループとほぼ同じ意味である(continueを使うときだけ意味が違う)。
開始処理 while (継続条件) { 繰り返し処理 更新処理 }たとえば,更新処理にはi++のような式を書くと決まっているわけではなく,どんな式でも書くことができる。
★b2) 10個の整数をキーボードから読み込み,奇数と偶数の数を数えて出力するプログラムを作成しなさい。(繰り返しを使うこと。配列は使わないほうがよい)
b3) 2つの整数aとbを読み込み,a以上b以下の整数を大きい順(降順)に画面に表示するプログラムをforを用いて作成しなさい。もし,aがbより大きかったら,まずaとbを交換してから処理しなさい。
★b4) キーボードから自然数を順次読み込み,0を読み込んだら,それまでの最大値を表示して終了するプログラムを作成しなさい。
【ポイント】 while (1) や for (;;) という書き方で「終わらないループ」を作ることができる。このようループを無限ループという。ただし,本当に終わらないループを書いてはいけない。何かの条件でループが終わるように,break 文を記述しなければならない。
while (1) { /* このままだと永久に実行し続ける */ ... if (終了条件) break; ... }
★b5) 掛け算の九九の表を出力するプログラムを作成しなさい。余裕のあるひとは左下または右上半分だけ出力するプログラムを作成しなさい。以下に例を示す。(2重ループを使うこと。配列は使わないほうがよい)
\ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
1 | 1 | ||||||||
2 | 2 | 4 | |||||||
3 | 3 | 6 | 9 | ||||||
4 | 4 | 8 | 12 | 16 | |||||
5 | 5 | 10 | 15 | 20 | 25 | ||||
6 | 6 | 12 | 18 | 24 | 30 | 36 | |||
7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | ||
8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | |
9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 |
【ポイント】 ループの中にループを書くことを2重ループ(多重ループ)という。
bx1) 2つの整数aとbを読み込み,aからbまでの和a + (a+1) + … + (b-1) + b を計算して出力するプログラムをfor文を用いて作成しなさい。ただし,aがbより大きい場合には,aとbを交換して計算しなさい。
bx2) 正の整数を順次キーボードから読み込んで合計を計算し,ゼロまたは負数が入力された時点で結果を表示して終了するプログラムを作成しなさい。このとき,正数のみの合計を表示して終了すること。
bx3) 複利の年利x%で毎月利息がつく銀行預金に,毎月y円ずつ積み立てる。たとえば,x=12%(1月あたり1%), y=1000円なら,積み立てを始めてから1ヵ月後には1000×1.01+1000=2010円,2ヵ月後に2010×1.01+1000=3030円になっている計算である(小数点以下は切り捨て)。では,何年何ヶ月後に100万円を越えるか計算するプログラムを作成しなさい。
bx4) キーボードから読み込みこんだ整数n (ただしn≧2)を1辺の長さとするアスタリスク(*)の正方形を描画するC言語のプログラムを作成しなさい。たとえば,n=2,3,4のときは,それぞれ以下のような図形が出力される。
n=2 ** n=3 *** n=4 **** ** *** **** *** **** ****
bx5) 2+3+5=10のように,合計が10になるような3つの整数の組み合わせをすべて調べて列挙するプログラムを作成しなさい。
この課題は,配列の知識が必要である。
bz1) az1)の戦闘プログラムを改良して,複数対複数で戦えるようにしなさい。とはいっても,いきなり“乱戦”を実現するのは難しいので,柔道の団体戦のように1人ずつ順番に対戦する勝ち抜き戦を実現しなさい。
... 味方2 味方1 味方0 →×← モンスター0 モンスター1 モンスター2 ...
主人公たちは,狭い洞窟の通路を,たいまつを灯しながら1列になって進んでいる。そのとき,前方から咆哮が聞こえ,凶暴なモンスターのグループが襲ってきた!
前回同様,乱戦に対応させるなど,これも改良自由である。