わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

int mainなんだからreturn 0;を書こうよ

昨日の午後は,演習の2回目.
学生には,プログラムができたら,こちらで用意した検証プログラムを実行して,デバッグに役立ててもらっていますが,「答えが合わないと言っている」という相談がかなりありました.
うち一つは,検証プログラムのバグです.作っている段階でも,ちょっと気にしととかなあかんなあと思っていたものでした.授業中にデバッグできそうにないので,「これはOKですよ」と答えました.
もう一つ,よく見かけたのは,出力は合っているのに,それでも答えが合わないもの.これは意図したものでして,実は出力と,こちらで用意した正解ファイルとを比較する際に,「終了ステータスの値・標準出力への出力内容・標準エラー出力への出力内容」をセットにして一つのファイルを作って,それで比較しているのでした.
そして,return文がないと,終了ステータスの値が不定になり,結果が合わないというわけです.
実用上,終了ステータスを使う機会なんてほぼないので,これは除外して比較するのでもいいのですが,今回は「int mainなんだからreturn 整数値;で終わるようにしましょう」という,いわば教育的指導として,この措置は残すことにしました.
ともあれ,急ごしらえの検証プログラム,まだまだ見直しの余地がありそうです.