引数で数値を受け取ると、対応するテキストを表示する関数を作りました。その関数を次のように呼び出してみたところ、どうやら期待どおりに動作しているように見えます。でも、できれば早いうちに直しておきたい部分があります。

どこを直すのがいいか分かりますか?
main.c
#include <stdio.h>
#include <stdlib.h>
/* 引数が1のときは"one"、2のときは"two"と表示する */
void PrintOneOrTwo(int n) {
if (n == 1) {
/* 1のとき */
puts( "one" );
} else {
/* 2のとき */
puts( "two" );
}
}
int main(void) {
PrintOneOrTwo(1);
PrintOneOrTwo(2);
return EXIT_SUCCESS;
}
実行結果
one
two

今回のプログラムは、コメントが入ってて読みやすいですね。

そうね。最初のコメントが関数の仕様になってるのが分かるかしら?

最初のコメントはこれか……
/* 引数が1のときは"one"、2のときは"two"と表示する */
void PrintOneOrTwo(int n) {
……
}

引数によって表示するテキストが変わるっていう仕様ですね。

そうそう。関数の中身はどうなってるかしら?

関数の中身にもコメントが入ってる。ふむふむ……ん?
if (n == 1) {
/* 1のとき */
puts( "one" );
} else {
/* 2のとき */
puts( "two" );
}

んんー。なんだろう、これ……

ね。なんだか正しいような正しくないようなプログラムでしょ?

はい。最初は読みやすいと思ったんですけど、よく見たらモヤモヤしてきました……

そのモヤモヤの理由について考えるのが、今回の問題よ。

な、なるほど。

問題の関数に
3
を入力したらどうなるでしょうか?