Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

練習問題6(宿題)

練習問題5(宿題) で作成たプログラム( kadai5.c )を、以下の指示に従って変更したものを作る。

(1)

配列で表現していたスタックを、授業中練習問題6 の「動的スタックの実現例」のプログラムを参考にしながら、動的なものに変更する。ただし、PhysCheck の型を以下の様に変更し、氏名の文字列 name も動的な文字配列で表現する。

/*--- 身体データ型 ---*/
typedef struct {
    double vision; /* 視力 */
    int height; /* 身長 */
} Body;
/*--- 身体検査データ型 ---*/
typedef struct {
    Body body; /* 身体データ型 ---*/
    char *name; /* 氏名 */
} PhysCheck;

(2)

授業中練習問題64) で追加した関数 Search(PhysCheckStack *s, PhysCheck *x) を、 練習問題5(宿題)Count(PhysCheckStack *x, PhysCheck *x) と同じ様に引数を変更する。追加した関数 Search は、入力されたパターン文字列を PhysCheckStack 型のスタック上に積まれている身体検査データを頂上から底に向かって探索する。そして、パターンを含む氏名を見つけた場合は、そのスタックポインタを返す。また、パターンが見つからない場合は、-1 を返す。

(3)

main 関数では (1)プッシュ (2)ポップ (3)ピーク (4)表示 (5)係数 (6)探索 (0)終了: と表示する。そして、数字の 6 が入力されると、パターンの文字列を x に読み込み、(2)で追加した関数 Search(PhysCheckStack *s, PhysCheck *x) を使って探索する。パターンを含む氏名を見つけた場合は、その氏名を含む全てのデータを表示する。また、パターンが見つからなかった場合は パターンは存在しません. と表示する。

提出