2017-11-11 7 views
0

質問:ノードのリンクリストを作成します。各ノードには、リスト内の次のノードをリンクするために使用される学生名、年齢、コース番号、成績、およびポインタが必要です。 append node member関数を使用して、5人の学生のリンクリストを生成します。検索メンバー関数を作成して、「A」グレードを取得した学生の名前を表示します。 1人の学生だけが「A」等級を取得したとします。ここから移動する方法があまりにもわかりません。リンクされたリストを使って検索する?

ここから移動する方法があまりにもわかりません。私はリンクされたリスト/ノードに慣れていません。どんな助けでも大歓迎です。検索機能であなたのif文でなければなりません

#include <iostream> 
#include <cstring> 
using namespace std; 

struct node 
{ 
    string name; 
    int age; 
    int coursenum; 
    char grade; 
    node *next; 
}; 

node *search (node * head) 
{ 
    node *temp = head; 
    char grade; 
    while (temp != NULL) 
    { 
     //if (temp->grade == 'A') 
     //if((temp->grade, grade)=='A') 
     if(strcmp(temp->grade, grade)=='A') 
    { 
     cout << temp->name; 
     return temp; 
    } 
     temp = temp->next; 
    } 
} 

int main() 
{ 
    node *head = NULL; 

    string name; 
    int age; 
    int coursenum; 
    char grade; 

    int i = 0; 

    while (i < 2) 
    { 
     cout << "Enter the students name: "; 
     cin >> name; 
     cout << "Enter the studens age: "; 
     cin >> age; 
     cout << "Enter the students course number: "; 
     cin >> coursenum; 
     cout << "Enter the students grade: "; 
     cin >> grade; 
     node *temp = new node; 
     temp->grade = grade; 
     temp->next = head; 
     head = temp; 
     i++; 
    } 
    search (head); 
} 

答えて

0

if (temp->grade == 'A') 

しかし、あなたの問題はリンクリストを理解していません。あなたは名前、年齢、および法律に正しく値を書き込むことはできません。すべての読み値を構造体の変数に代入する必要があります。

temp->name = name; 
temp->age = age; 
temp->coursenum = coursenum; 
temp->grade = grade; 
2
strcmp(string1,string2) // returns 0 if strings are equal. 
    String str1 = 'apple'; 
    String str2 = 'apple'; 
    if(strcmp(str1,str2)) 
    { 
    cout<<"inside if"; 
    } 
    else{ 
    cout<<"inside else" 
    } 

//もし条件が '0'

に評価されるため、出力は "ほかの内側" になります
関連する問題