期末試験対策として,今回は以下の課題の解答を専用の 用紙に入力してください.用紙は5問の解答を全て一つの main() の中に記述する方式です.ですので,ヘッダファイルのインクルードはすでに用 紙の先頭で行っているため不要ですし,1問ごとに return(0) を記述 することは間違いです.その辺をよく理解して作業を行ってください.
解答用紙は,何も記入していなくても,すでにC言語のプログラムとなっていま すから,解答を記入してコンパイルエラーが出るようだと,自分の解答に間違い があるということですので,間違い部分の削除をしないと,本番の期末テストで は採点されないことにもなります.
なお,変数の宣言などは,各設問の解答部分にお願いします.ただし,一度宣言 したものは,2度行うとエラーになりますので,注意してください.授業でも説 明しているように,for 文で使用する変数 i は毎回初期化 されるので,何度使用しても構いません.
1桁の整数を乱数で発生させる.もし,同じ数が3回続いたらMiracle!と表示して 終わるプログラムを作成せよ.
9 9 3 9 9 7 6 3 9 8 2 2 6 5 8 4 6 3 3 2 7 9 9 7 6 3 4 3 4 9 2 4 9 4 1 6 9 7 6 8 3 7 7 9 1 5 3 4 8 5 5 3 2 4 8 7 5 9 8 8 8 Miracle! |
発生した乱数の値を格納しておく変数を用意して,それとの比較を行って連続を 判断します.
100から120までの整数の約数を探して以下のように表示するプログラムを作成せ よ.
100 : 1 2 4 5 10 20 25 50 100 101 : 1 101 102 : 1 2 3 6 17 34 51 102 103 : 1 103 104 : 1 2 4 8 13 26 52 104 105 : 1 3 5 7 15 21 35 105 106 : 1 2 53 106 107 : 1 107 108 : 1 2 3 4 6 9 12 18 27 36 54 108 109 : 1 109 110 : 1 2 5 10 11 22 55 110 111 : 1 3 37 111 112 : 1 2 4 7 8 14 16 28 56 112 113 : 1 113 114 : 1 2 3 6 19 38 57 114 115 : 1 5 23 115 116 : 1 2 4 29 58 116 117 : 1 3 9 13 39 117 118 : 1 2 59 118 119 : 1 7 17 119 120 : 1 2 3 4 5 6 8 10 12 15 20 24 30 40 60 120 |
2重の for 文を用いて,以下に示すような円形の図形を描画するプロ グラムを作成せよ.
○○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○●●●●●○○○○○○○○ ○○○○○○●●●●●●●●●○○○○○○ ○○○○○●●●○○○○○●●●○○○○○ ○○○○●●○○○○○○○○○●●○○○○ ○○○●●○○○○○○○○○○○●●○○○ ○○○●●○○○○○○○○○○○●●○○○ ○○●●○○○○○○○○○○○○○●●○○ ○○●●○○○○○○○○○○○○○●●○○ ○○●●○○○○○○○○○○○○○●●○○ ○○●●○○○○○○○○○○○○○●●○○ ○○●●○○○○○○○○○○○○○●●○○ ○○○●●○○○○○○○○○○○●●○○○ ○○○●●○○○○○○○○○○○●●○○○ ○○○○●●○○○○○○○○○●●○○○○ ○○○○○●●●○○○○○●●●○○○○○ ○○○○○○●●●●●●●●●○○○○○○ ○○○○○○○○●●●●●○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○○ ○○○○○○○○○○○○○○○○○○○○○ |
上の例では日本語フォントの○と●を使用していますが,文字は何でも構いませ ん. ただし,ASCIIコード文字では縦長になって見栄えが良くないので,2文字分(例 えば ** と -- のような)使用 する方が良いかもしれません.
サイコロを10000回振って出た目の出現確率を表示せよ.
1 2 3 4 5 6 1698 1647 1679 1666 1692 1618 0.170 0.165 0.168 0.167 0.169 0.162 |
サイコロの目の出現回数を入れておく配列 dice を用意しておいて, 目に従って,dice[1] から dice[6] を1ずつ増やしていくこ とで,出現頻度の格納された配列が作成できます.ただし,配列は初期化してお かないといけないので,以下に示す初期化を行っておいてください.
ary[7] = {0, 0, 0, 0, 0, 0, 0};
なお,上の例で要素が7つ分用意されているのは,配列の要素の添字は0から始まるので,サイコロの目と合わせるために0番目を捨 てているためです.
5×5のマトリックス状に●もしくは○をランダムに表示する.出現確率はそれぞ れ1/2ずつとする.その操作を何度か繰り返し,○のところに●が出た場合には ●で置き換えるが,●の部分に○が出ても置き換えないとする.すなわち,段々 と●が多くなるようにし,全部が●になる まで繰り返すプログラムを作成せよ.
●●○○○ ○●●○● ○○●●○ ○●●○● ○○○●○ ●●○○○ ●●●○● ●○●●● ○●●○● ●●●●○ ●●●●○ ●●●○● ●○●●● ●●●○● ●●●●○ ●●●●○ ●●●○● ●○●●● ●●●○● ●●●●○ ●●●●○ ●●●○● ●○●●● ●●●●● ●●●●○ ●●●●● ●●●○● ●●●●● ●●●●● ●●●●● ●●●●● ●●●○● ●●●●● ●●●●● ●●●●● ●●●●● ●●●●● ●●●●● ●●●●● ●●●●● |
上の例は,最初の1回分とそれ以後の修正分とでループを分けています.修正の 部分は while 文を使用して,全部黒丸になることを数値化してその数値 により終了の判定を行っています.