過去に作った関数の再利用と、関数定義例です。
過去にステップ1、  ステップ2、  ステップ3と作成した時の 次の関数を再利用します。
 ・ iarray配列へキー入力追加(icountを更新)する関数→void input_ia();
 ・ iarray配列の全データの表示する関数→void disp_ia();
 ・ iarray配列へ、ファイル内容を追加 (icountを更新)する関数→void load_ia();
 ・ iarray配列の全データをファイルに保存する関数→void save_ia();

他の参考ページ→ 配列使い方2ポインタ操作

配列の指定位置から探す

配列内で、指定データを、指定位置から探して見つかった位置の添え字を返す関数

プログラム仕様

まず、上記のファイル『iarray.txt』のデータをiarray配列へ読み取って、それを表示します。
それから、探したい値を入力させ、配列内でそのデータと一致する要素の添え字列挙させます。
なお、iarray配列内を探す順番は、添え字の小さい方から大きくする方向で順番に探します。
以下に実行例を示します。

0:5
1:2
2:6
3:5
探したい値>5
0の位置にあります
3の位置にあります

一つのmainでプログラミングすることも可能ですが、過去の関数を利用する例を示すのが目的なので、 その作り方でプログラミングします。

まず、プログラム仕様の目標が実現できるように、iarray配列へファイル内容を追加(icountを更新)する関数load_iaを呼び出します。
次に、iarray配列の全データの表示する関数disp_iaを呼び出します。

以上の処理は、過去に作っているからです。希望のデータを探す処理は、 後で再び使うことができるように、indexof_iaの名前で新たに関数を作っています。 indexof_iaの定義は、 第1引数のデータを、第2引数の添え字位置からiarray配列内を順番に探し、データが見つかったら、 その添え字を返す関数として定義します。 iarray配列内を探す順番は、第2引数の添え字位置から1ずつ大きくする順番で探します。 icountまで見つからない場合は、-1を戻り値にする仕様とします。

文法的な間違いはないのですが、関数の使い方が正しくないので正しく動きません。直しましょう。



関数は、まとまった処理に名前をつけて実行できるものですが、作る場合は 必ず仕様を決めて作ります。そして当然ですがその仕様に合わせて使うわけです。
(上記では、戻り値を使っていません)

←編集 入力後に クリックください。