初歩的な間違いということでつらいものだが、数時間つまづいてようやく問題解決に至ったので、そのことを書いておきます。
柴田望洋の『新版 明解C言語 入門編』のList 6-4を勉強にと思ってプログラムをそのまま書いて、コンパイル。
ところが、その結果が、

一応全体では次のようになってる。

こんなことに。実数を入力して、それから整数を入力すると、実数を整数乗した結果がでるはず。そのはずが整数の入力がされないままに、勝手に数値が入力されてしまう様子。エラーも出ないで実行されてしまう。
んーーなんだろうと思ってずっと考えたり、もう一度入力しなおしたりしていたが、やっぱり同じエラーが。List 6-5は乗数計算の関数を別の仕方で短く書いたものなので、それも入力してコンパイル。実行をしてみた。これでも同じエラー。……だとすると、main関数のほうなのか。望洋の本と見比べてじっくりと一致確認をしていくがわからないまま。あやしそうなのは数値入力のところ。scanfのあたりが怪しい。だが、それでもわからない。
そうなると責任転嫁となる。これは望洋本の誤植に違いない。ということで、List 6-4 誤植というキーワードで検索してみる。これで犯人がわかるはずだ。……だが、残念なことに検索結果はノーヒット。該当するような誤植の指摘はない。やっぱり入力間違いの可能性が高くなる。int double、%dとかの入力間違いを再度チェック。しかしやっぱり出てこない。
あ、わかった。本には次のように実数値の入力部分が書かれている。
scanf("%lf", &x);
これを間違って、
scanf("%1f", &x);
と入力してしまっていたのだ。望洋本のフォントだと、エルの小文字は「1」に非常に近く、頭の部分が曲がっていて、下に横棒がある。くそー。クレームもんだよな。
実際に二つのフォントの比較をしてみよう。フォントは太文字になっていて、同じフォントでエルと1が出ているページを探してみた。256ページにs1という文字列名とwhileが太文字で出ていた。1とエルはやっぱりかなり似ていた。
常識がないのが問題だけど、フォントとしてもわかりにくいよな。
検索途中で、ライフゲームというのを見つけた。
http://d.hatena.ne.jp/ichirin2501/20100224/1267016447
C言語なので、コピーして、学習用C言語開発環境最新版で実行。
残念ながら、画面で流れていってしまい、実行状態はよくわからない。
数値が増えているのはわかるが、画面が下から上へ流星のように流れている。
これが別の意味できれいに見える。
みていたらこのブログは面白い。プログラミングの話が中心だが、数学関連の話もあって、OEISについて触れられていた。整数に関するデータベースサイトらしい。
http://www.research.att.com/~njas/sequences/
日本語版もあるが、かなり限定されているとのこと。
柴田望洋の『新版 明解C言語 入門編』のList 6-4を勉強にと思ってプログラムをそのまま書いて、コンパイル。
ところが、その結果が、

一応全体では次のようになってる。

こんなことに。実数を入力して、それから整数を入力すると、実数を整数乗した結果がでるはず。そのはずが整数の入力がされないままに、勝手に数値が入力されてしまう様子。エラーも出ないで実行されてしまう。
んーーなんだろうと思ってずっと考えたり、もう一度入力しなおしたりしていたが、やっぱり同じエラーが。List 6-5は乗数計算の関数を別の仕方で短く書いたものなので、それも入力してコンパイル。実行をしてみた。これでも同じエラー。……だとすると、main関数のほうなのか。望洋の本と見比べてじっくりと一致確認をしていくがわからないまま。あやしそうなのは数値入力のところ。scanfのあたりが怪しい。だが、それでもわからない。
そうなると責任転嫁となる。これは望洋本の誤植に違いない。ということで、List 6-4 誤植というキーワードで検索してみる。これで犯人がわかるはずだ。……だが、残念なことに検索結果はノーヒット。該当するような誤植の指摘はない。やっぱり入力間違いの可能性が高くなる。int double、%dとかの入力間違いを再度チェック。しかしやっぱり出てこない。
あ、わかった。本には次のように実数値の入力部分が書かれている。
scanf("%lf", &x);
これを間違って、
scanf("%1f", &x);
と入力してしまっていたのだ。望洋本のフォントだと、エルの小文字は「1」に非常に近く、頭の部分が曲がっていて、下に横棒がある。くそー。クレームもんだよな。
実際に二つのフォントの比較をしてみよう。フォントは太文字になっていて、同じフォントでエルと1が出ているページを探してみた。256ページにs1という文字列名とwhileが太文字で出ていた。1とエルはやっぱりかなり似ていた。
常識がないのが問題だけど、フォントとしてもわかりにくいよな。
検索途中で、ライフゲームというのを見つけた。
http://d.hatena.ne.jp/ichirin2501/20100224/1267016447
C言語なので、コピーして、学習用C言語開発環境最新版で実行。
残念ながら、画面で流れていってしまい、実行状態はよくわからない。
数値が増えているのはわかるが、画面が下から上へ流星のように流れている。
これが別の意味できれいに見える。
みていたらこのブログは面白い。プログラミングの話が中心だが、数学関連の話もあって、OEISについて触れられていた。整数に関するデータベースサイトらしい。
http://www.research.att.com/~njas/sequences/
日本語版もあるが、かなり限定されているとのこと。