明解C言語 中級の5章末問題解いてみた

継続は力なりとはよく言ったもので、GoogleAnalytics調べでは直近1か月で1か月あたり5000PVを超えたらしい。開始当初からのグラフを見たらグイーンと斜め上に上がっている様が見れてなかなか感動する。

では5章です。やっとで折り返し地点となりました。

5章はアルゴリズムを考える感じの課題が多くてなかなかだった。内容も濃い感じになってきたって感じるし、そこそこ力も付いてきたんだろうか。
会社でPHPをちょっと触ったんだが、やっぱり前より読めるようになったなあと思う。

では1問目から。
記憶した整数を逆順に入力するゲームで、int型整数と文字列の2パターンで作る。
文字列は配列なので大したことはないけど、int型をひっくり返すのはけっこう考えた。どこかで見たことあるような感じだけどね(笑)
まあそういうもんだろう。

そーす:ごめんなさい。データなくなっちゃいました。

2問目です。
数字の記憶ゲームで、先頭から3桁目はといった出題に変更をする。2パターン作る事。とあるけども、int型だけにした。

そーす:ごめんなさい。データなくなっちゃいました。

3問目どす。今度は英字の記憶ゲームで、逆順に入力するプログラムに変更すること。

そーす:ごめんなさい。データなくなっちゃいました。

4問目。英字バージョンで、先頭から4桁目は?という問題にプログラムを変える。

そーす:ごめんなさい。データなくなっちゃいました。

5問目。
今度はBは何桁目?っていう問題にプログラムを変更する。型とかを考えるのが大変だなあ。型ってC言語特有のものなんだっけ。

そーす:ごめんなさい。データなくなっちゃいました。

6問目。
プラスワントレーニングの例題で、3回目の入力時に2回目に戻れるような形に変える。
テレビゲームとかじゃ当たり前の機能だが、やってみると大変だな。

そーす:ごめんなさい。データなくなっちゃいました。

7問目。
マイナスワントレーニングに変更する。
1か所変えただけなんだけど、いいのかね。

そーす:ごめんなさい。データなくなっちゃいました。

8問目。たしか第3章で、5章を参考にしなさいという問題があって、こっちにも出てきた。
なんだこりゃ。
3章のじゃんけんゲームを手や勝敗の履歴を配列に格納して、直近10回の履歴を保存するタイプと、プレーヤーの入力に基づいて保存回数を変更するタイプを作れ。
という問題

これは結構考えないとできなかった。っていうか10回の回数の方がなぜかNULLになるときがある。
callocを使った後者の方がプログラムもコンパクトにできたし、動作も普通だ。だけど理由は謎なんだな。
単純にプログラムがミスってるのかもしれないけど、コンパイルできるのでなんとも言えん。
むずかしっす。でも適当に書いても動かないところは面白うぃ。

そーす:ごめんなさい。データなくなっちゃいました。

てな感じです。

ここ最近ずーーーっとプログラムを書いている。
んで余談なんだけど、もし学生の人でプログラムに今一つのめり込めてない人が居たら、サーバー運用から始めてみるのはどうかな?とお勧めしたい。