『スッキリわかるC言語入門』について仮想環境は重い数当てゲーム中山清喬著『スッキリわかるC言語入門』という本を買って少し勉強してみた話です。筆者(私)のスペックC言語は完全初心者。Python、C#、JavaScriptは入門書を一冊づつ読みました。本屋でアルゴリズムの本を見てみたら、C言語で説明しているものが多かったので、それらの本の説明がわかる程度にはC言語を理解したいなーと思ったのがきっかけです。『スッキリわかるC言語入門』についてこれほど配慮の行き届いた親切な本ははじめてです。C言語は難しいイメージがありますが、手とり足とりな教え方ですごくわかりやすくて、いまのところ(260ページ目/751ページ)初心者の私でも普通について行けてます。C言語学習の1冊目におすすめできそうです。章末には練習問題があって、「こういうプログラムを作りなさい」みたいな問題もあるんですが、それまでに習ったことだけを使ってどうにかできないかと考えるのがすごく楽しいです。仮想環境は重い本では開発環境の構築ガイドもあって、とりあえずその通りに構築してみました。学習用にツールや設定を整えた仮想マシンが用意されていて、指示通りにインストールしていけばその仮想マシン上で開発できるようになります。具体的にはVirtualBoxとVagrantというソフトウェアで仮想マシンを作ってlubuntuというOSを動かし、その環境内で開発する形になります。i3-530、メモリ4G、HDD、HD5670)にはだいぶ重いです。仮想環境とWindowsを同時並行で操作するとフリーズしそうになります。最近のPCならたぶん大丈夫じゃないかなとは思いますが。いうわけでWindowsでコンパイルできるように環境を構築してみようと思っています。自力構築はハマりどころが多いらしいようなことが書いてあったのですんなりいくか不安です。(追記)全然すんなりいきませんでしたが、なんとか構築できました。CodeでC言語の開発環境をつくった数当てゲーム以下は第7章(配列)の練習問題(7-4)で、数当てゲーム(ヒットアンドブロー)を作る問題の自分の解答のメモです(注:良いコードではないです)。こんな感じの練習問題がついているよってことで。問題は、ランダムに生成された3桁の数を、一桁づつ予想して当てるゲームを作る、というものです。桁と数字が一致していればヒット、違う桁に同じ数字があればブローとしてそれぞれカウントします。3ヒットの場合は「正解です!」と表示しゲーム終了。0:終了)」と表示し、0なら終了、1なら数値入力まで戻るという処理を作ります。0;}普通ヒットアンドブローは各桁の数字の重複はなしだった気がしたので、勝手に重複なしのゲームにしました。問題文をよく読んだら数字の重複についてはなにも指定がなかったので、重複ありにすればもう少し簡単に書けたみたいです。重複ありってゲームとして難しくないかな??あとはゲームの桁数を変えたい時にDIGITSの数字を変えるだけで対応できるようにもしました。ほかに数値入力の際に0~9以外を入力するとやり直しとなる処理も追加しました。この処理は不完全で、単純に0未満と10以上の数字をはじいているだけです。文字を入力すると0になるし、小数を入力すると小数点以下が切り捨てになるので、これらの入力をはじくことができません。ここまでに出てきた知識ではいい解決法が思いつきませんでした。