[問1] 長さ100のstruct rocker型の配列 struct rocker Rockers[100]; を定義して、この中の所定の数のロッカーに乱数を格納するプログラムを以下の手続きにしたがって作りなさい。
○ データ構造として次の構造体を用意する。
struct rocker {
int data; //保存するデータ
char name[20]; //ロッカーのラベル
};
○ main関数の中身が次のようになるものとする。
int main() {
int N;
struct rocker Rockers[100];
scanf("%d", &N);
set_rockers(Rockers, N);
display_rockers(Rockers, N);
}
上記main関数の中の
void set_rockers(struct rocker rockers[], int length); //0番目からlength-1番目のロッカーにラベル(name)と乱数(data)を格納する関数
および
void display_rockers(struct rocker rockers[], int length);//0番目からlength-1番目のロッカーのname, dataを全て表示する関数。
を次の仕様を元に定義し、プログラムを完成させなさい。
set_rockers()の仕様:
例えば0番目のロッカーには
rocker[0].name が "rocker-0"という文字列がラベルとしてセットされ、
rocker[0].data に乱数(例:1804289383)がセットされます。
ラベルをセットするにはsprintf()を使用すると便利です。
sprintf()は例えば
char str[100];
int i = 1;
sprintf(str, "rocker-%d", i);
とすると、strには"rocker-1"がセットされます。
乱数はあらかじめ用意されている関数 int rand()を使用すると得ることが出来ます。ただし
#include <stdlib.h>
が必要です。rand()は呼び出すたびに全く異なる数を返してきます。なお、rand()を使う前にsrand(0)を実行するようにしてください。
display_rockers()の仕様:
printf("%s : %d\n", rockers[i].name, rockers[i].data);
をlength個分繰り返してください。
gcc kadai11-1.c
./a.out
3
rocker-0 : 1804289383
rocker-1 : 846930886
rocker-2 : 1681692777