プログラミング: 2018年4月アーカイブ

大学生になったんで、さっそく授業で C言語を習っている息子から質問LINEが来た。
(俺は日ごろ全然 C言語は使わないんだけど、まあ、入門問題くらいには答えられる(笑))

問題は、

int i;
i = 077;
printf("i = %f\n", i);

だと、

i = 63.000000

と表示されるものを、

i = 77

と表示されるように修正しろってもの。

息子は 077 が 8進数の記述だということがわからず、それでハマッている様子。

「答えはいらんから、ヒントをくれ」というので、「8進数と10進数の書き方。ちなみに、16進数は 0x77」とヒントを出すと、「そういうことか!!」と息子の答えが返ってきた。

int i;
i = 077;
printf("i = %02o\n", i);

と、printf の変換子だけ修正した形だ。8進数のまま 77と出したいんやな。(2桁の数字を 2桁で出すんで、02 はいらんけどな)

なるほど。俺は、「077 は 8進数なんで、10進数なら 77と書くんよ」という問題だと思ったので、

int i;
i = 77;
printf("i = %d\n", i);

じゃねえの?って回答したんだけど、実際、先生がどっちの意図で問題出してるかわからんので、どっちも正解やな。

息子は結局、「10進の 77を出せっていう問題な気がする」と、俺の回答案を採用するというてるんだけど、実際どっちかわからんし、せっかく自分で回答考えたんだから 8進の 77を表示するほうを提出せえよ・・・と言うてるんだけど。

いやあ、しかし、そのうち C言語のややこしい質問には答えられなくなるなあ。

「先生に、Perlじゃだめですか?って聞いてみい」と言わざるを得なくなるな(笑)

#ちなみに我が家では、長男坊にはいっさいプログラミングを教えてません。大学生になって初めてプログラミングに触れた息子(笑)

このアーカイブについて

このページには、2018年4月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2018年2月です。

次のアーカイブはプログラミング: 2018年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら