必修課題 課題7-1, 7-2で指示されるプログラムを作成し, そのプログラムと実行結果を提出する.
レポートは,以下で説明する「プログラムリスト」の後に, 実行結果を印刷したものを重ねてホッチキスで綴じ,提出する.
int型配列とその要素数Nを渡されると,配列の並びを逆順にする関数を用いたプログラムを作成せよ.
ただし,int型配列の並びを逆順にする関数内で新たに配列を用意しないこと.
また,main 関数内で用意する配列の大きさは,マクロ定義であらかじめ決めておいて良いが,
関数自体はNが正の整数ならなんら変更しなくても良いような汎用性のあるものとすること.
動作例:
引数に要素数 N と,配列 a[] を関数に渡すと,
以下のように配列の中身を入れ替える関数を作成する.
a[0] -> a[N-1] a[1] -> a[N-2] : : a[N-2] -> a[1] a[N-1] -> a[0]
課題6-1を配列を引数とした関数を使ったプログラムとせよ.
ただし,関数は,現在の人口が最も多い都道府県,10年前に人口が最も少なかった都道府県,
10年間で人口の増加が最も大きかった都道府県(を表す番号)をそれぞれ戻値
として返す関数を作成すること.
なお,複数回答ある場合(現在の人口が最も多い都道府県が,2つある場合等)は,
そのうちの1つが回答できれば良い.
また,データ数も引数とし,配列の大きさに関係なく回答可能な,
汎用性のある関数とせよ.
example7_3.c のプログラムで,探索するキーと同じデータをわざと配列の最後尾に追加 (番兵)すれば,キーに一致するデータがなくても番兵で終了すれば終了判定を よりスマートに記述できる.example7_3.c のプログラムに番兵を適用して書き改めよ.