明解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を使った後者の方がプログラムもコンパクトにできたし、動作も普通だ。だけど理由は謎なんだな。
単純にプログラムがミスってるのかもしれないけど、コンパイルできるのでなんとも言えん。
むずかしっす。でも適当に書いても動かないところは面白うぃ。

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

てな感じです。

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

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

「明解C言語 中級の5章末問題解いてみた」への3件のフィードバック

  1. それぞれのファイルでsleep.hを参照しようとしているせいでコンパイルできませんね.
    どこかに有りますか?

    全ては見ていませんが,ぱっとみusleep()で代用できそう…?
    とりあえず5-1はuleep()に勝手に書き換えて(ごめんなさい><)動かして見ました.

    正解,あるいは不正解後すぐに次の数列を表示するところに戻ってしまいますから入力してエンター押すときには次の数字に対して構えていなければなりません….
    カウントダウン用のforを次のforのなかに入れてみるのはどうでしょう.

    1. かぼちゃさん

      ほおお、カウントダウンのforをforに入れてみたのですが、ずいぶんとゲーム性が高くなりますね。
      usleep()というのを調べてみたのですが、ミリ秒とマイクロ秒の違いだけみたいですので、おっしゃるとおり代用してまったく問題ないようです。
      sleep()は明解C言語の著者の柴田望洋氏のサイトでも公開されてるみたいで
      http://www.bohyoh.com/Books/MeikaiC02/download.html
      こちらです。↑
      ここにsleep()もありました。

      あと、ソースを書き換えて突っ込んでいただくのは全く問題ないですよ(笑)
      そのために公開しているという部分もあります(笑)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です