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