[問1] 前回と同様に国語と数学の2科目のテストの成績を処理するプログラムを作る。今回はそれぞれの科目の期末テストが合格か否かを判定したい。つまり前回の構 造体に合格かどうかを格納する変数も必要だ。そのため、対応する名前のメンバーを構造体に増やす必要がある。しかし、メンバーが増えすぎると構造体が煩雑 になって見た目にわかりにくくなることは否めない。そこで、今回はもっとスマートな汎用性の高いデータ構造の構築を目指そう。すなわち、構造体をもう１つ 用意して
 
struct each_score {
      ???  ???;   //点数
      ???  ???;    //合格・不合格
 };
 
struct SEISEKI {
     char name[50];
     struct each_score  kokugo;
     struct each_score  sugaku;
 };
 
としてみよう。見た目にはstruct SEISEKIのメンバーの数には変わりがないことが分かるだろうか。
 しかし、そのメンバーの型がstruct each_scoreとなっていて、それぞれが点数のみならず、合格・不合格の情報を格納できるというわけである。
 
struct each_score の「??? ???」部分を補った上で、それぞれの成績がborderlineで表される成績を上回っているか否かを判定し、合格・不合格を表すメンバーに１（合格の 意味）もしくは0（不合格の意味）の値を代入して３人の学生の合否データを含めた記録を作ろう。３人の成績データを格納するデータ構造は、配列を利用して 次のように定義できる。
 
struct SEISEKI score[3];
 
ついては、各人の成績データから合否判定をして合格・不合格情報をデータ構造に書きこむ関数
void check_score(int borderline,  struct SEISEKI *a)  /* 引数aの前に'＊'が付いていることに注意されたい */
を定義して、その動作を確認する（すべての人の成績を入力し、データ構造に書きこみ、合否判定をして全結果を表示する）プログラムkadai8-1.cを作りなさい。
 但し、ボーダーラインは60点とする。（必ず上記の型通りのcheck_scoreを定義し、引数borderlineを使用するようにプログラムを書きなさい）

 また、結果の表示を行うために、前回の課題同様に表示用の関数
 void print_score(struct SEISEKI a);
 を作りなおして、使用するように。今回は合格・不合格も表示する。
 
ただし、答えの入力は前回と全く同じで、
ex. 入力例：
 yamauchi 60 70 yamada 30 90 tougou 70 80

 表示はつぎのフォーマットで行うようにせよ。
 最終出力の例：
 name: yamauchi
 kokugo  60 : accept
 sugaku  70 : accept
 name: yamada
 kokugo 30 : rejection
 sugaku 90 : accept
 name: tougou
 kokugo 70 : accept
 sugaku 80 : accept
 


 
[問２] 上 記で作ったプログラムは３名の学生のデータしか入力できなかった。これをプログラム開始と同時に人数をユーザに問い合わせ、ユーザが指定した人数分のデー タの入力と合否判定・表示を行うプログラムに作りなおしなさい。ただし人数は何人になっても良いものとする。（例えば　１億人でも１００億人でも良いもの とする）
 
すなわち、問1のプログラムの始まり部分で
 
int num;
 printf("Input number of students >");
 scanf("%d", &num);
 
で変数numに学生の人数を格納する。次にこの学生数に合った配列をメモリ上に割りつける。
 
これには、動的割付malloc()関数を使用する必要があることに注意せよ。なお、ひとり分のデータstruct SEISEKIのバイト数は sizeof(struct SEISEKI)で分かる。つまり、
 
struct SEISEKI *score;
 score = (struct SEISEKI *)malloc(....);// <- ...の中身は自分で補うように
 if (score == NULL) {//メモリ割付に失敗した場合
     printf("Memory overflow\n");
     exit(1);//異常があったことをOSに伝えて終了する。
 }
 
とするとscore[指定された人数]の配列が出来上がる。
 
注）新たにincludeファイルの指定が必要になるので注意せよ。
 #include <malloc.h>    //malloc()を使うため
 #include <stdlib.h>     //exit(1)を使うため
 