【問題1】 サイコロのように1から6の目を等確率で発生させる関数を、rand()関数を用いて次の方法で作成せよ。 1+(int)(6.0*rand()/(1.0+RAND_MAX)); の演算で、1から6まで発生させる。 【問題2】 線形探索法で目的データを探索するプログラムを作成せよ。 データの数をキーボード入力し、その個数だけの疑似乱数を発生させてデータを配列に格納し、 データとその添え字番号を一覧表示する。次に目的データ(探索データ)をキーボード入力し、 線形探索法で探索し、見つかった場合その配列の添え字番号を表示し、見つからなかった場合は 「みつからなかったこと」を表示する。なお、データ数は最大50として、50をマクロ定義 せよ。また、データの探索と作成には、次の関数を作成して使うこと。 ・int linear_search(int data[],int key,int num) この関数はnum個のデータが格納された配列dataの中から、線形探索を用いて目的データkeyと等しい 値を探し、見つかった場合にはその配列要素を返却し、見つからなかった場合には-1を返却する。 ・void random_data(int data[],int num) この関数は整列していないnum個のデータを配列dataに格納する関数。疑似乱数rand()を用いよ。 データの値は0からnum-1までの整数で全て異なる値とせよ。 ※乱数列を変更するにはvoid srand(seed)を実行する。seedの値が異なると、ことなる乱数列が 得られることを確認しよう。 【問題3】 バブルソートを用いて、整数のデータ列を昇順に整列するプログラムを作成せよ。 データ数をキーボード入力し、続いてその個数の整列していないデータを配列に格納し、 データとその添え字番号をディスプレイに一覧表示するとともにファイルへも出力する。 次にデータ列のソートを行い、結果の整列したデータ列をディスプレイ表示するとともに、 別のファイルへ出力する。なお、データ数は最大50として50をマクロ定義せよ。疑似乱数で データを作成するために、【問題2】で作成した関数random_dataを使用すること。また、ソートには 次の関数を作成して使うこと。 ・void bubble(int data[],int num) この関数はnum個の値が格納された配列data[]を、バブルソートアルゴリズムで昇順に並べ替える関数である。