PTA:検索学生のリスト(20ポイント)(C言語)

この質問は、単独リンクリストに情報を入力するキーボードを作成し、学生情報学生情報リストを見て、学生が必要です。

次のように学生の情報LLIのノードが定義されています。

構造体のリスト{typedefは
  、int型のSNO
  チャーSNAME [10]。
  次のリスト*;
}、

あなたは、関数を作成する必要があります。

作成、学生情報リスト機能:CreateList

学生情報機能のリストを検索:検索

関数インタフェースの定義:
リスト* CreateList(); //キーボード入力、いくつかの学生番号と名前、空白文字間隔を持つ学生番号と氏名、学生番号の入力がある-1、入力端は、リターンという学生情報リスト機能を作成します学生は、ポインタのリストを率います。
リストは*検索(一覧*ヘッド、 INTなし)// クエリの学校の生徒数は、学生のリストには情報(先頭ポインタに頭)ではないノードの学生へのポインタを返します。

参考試験手順サンプル:
int型メイン(無効){
リスト*リスト= NULL、P;
int型NO;
リスト= CreateList();
しばらく(〜scanfの( "%のD"、&NO))
{
P =検索(一覧、NO );
IF(P)のprintf( "%S \ N-"、P-> SNAME);
他のprintf() "が見つかりませんでした\ N-!";
}
の戻り0;
}
/
* /ここで答えを記入してください

入力サンプル1:
20180002 WANG
20180006ヨンジュン
20180008呉タオ
20170010林
-1 XX
20180002

出力サンプル1:
出力に対応し、ここで与えられました。例えば:

王香港

入力サンプル2:
20180002 WANG
20180006ヨンジュン
20180008呉タオ
20170010林
-1 XX
20170015

出力サンプル2:
が見つかりませんでした!

List * CreateList()
{
    List *p, *head, *tail;
    int id; char name[10];

    head = (List*)malloc(sizeof(List));
    head->next = NULL;
    tail = head;
    scanf("%d", &id);
    while (id != -1)
    {
        p = (List*)malloc(sizeof(List));
        p->next = NULL;
        p->sno = id;
        scanf("%s", p->sname);
        scanf("%d", &id);
        tail->next = p;
        tail = p;
    }
    scanf("%s", name);

    return head;
}
List * Find(List *head, int no)
{
    List *p;

    p = head->next;
    while (p->sno != no)
    {
        if (p->next == NULL)
            return p->next;
        p = p->next;
    }

    return p;
}
公開された58元の記事 ウォン称賛21 ビュー600

おすすめ

転載: blog.csdn.net/qq_45624989/article/details/105400435