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

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

配列の指定位置を交換する

配列内において、引数で指定する2つ添え字が指す要素の記憶内容を交換する関数

プログラム仕様

まず、上記のファイル『iarray.txt』のデータをiarray配列へ読み取って、それを表示します。
それから、2つの添え字を入力させ、その添え字が指し示すiarrayの記憶内容を交換します。
次に、再びiarray配列のデータを全て表示させます。
以下に実行例を示します。

0:5
1:2
2:6
3:5
変更したい添え字>1 3
0:5
1:5
2:6
3:2

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

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

以上の処理は、過去に作っているからです。2つの添え字で、それが指し示す記憶内容を交換する処理は、 後で再び使うことができるように、swap_aiの名前で新たに関数を作っています。
そして、これを呼び出した後、再び表示するため関数disp_iaを呼び出すように作ります。

swap_aiの定義では、「交換したい要素を指す添え字」を2つ仮引数にして、 その添え字が指し示すiarray配列要素の記憶内容を交換するように定義しています。
しかし、関数の呼び出し方法(実行させる使い方)が間違っているのでエラーになります。正しく直しましょう。



関数は、使う前に定義するか、またはプロトタイプ宣言が必要で、その仕様と合わない使い方をした所で、 コンパラによるエラーの指摘がでます。(仕様と合わないとは、 戻り値の型や、引数の数、そしてそれぞれの引数の型が合わない場合です。)

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