回答編集履歴

1

一応コードの説明を追記

2023/05/18 05:54

投稿

fana
fana

スコア11663

test CHANGED
@@ -28,3 +28,14 @@
28
28
  return 0;
29
29
  }
30
30
  ```
31
+
32
+ ### やってることの意味:
33
+
34
+ もしも入力値がそのまま出力文字列を決めるための値(ここでは 配列 `FruitNames[]` のindex)としてそのまま使えるような話であったならば,
35
+ `printf( "%s\n", FruitNames[入力値] );`
36
+ とかすれば良いだけで,特段面倒なことは無い.
37
+ でも,実際の問題ではそうなってない.入力値と出力文字列の対応関係が微妙な感じになっているから困るなぁ.
38
+
39
+ アイデア:そしたら【入力値 → 配列 `FruitNames[]` のindex】という変換処理を間に噛ませれば良いよね.
40
+
41
+ 実装:その変換方法を決定する手段を「関数ポインタの一次元配列」という形でねじ込んだ.