不太确定如何从这里继续前进。使用链表进行搜索?
问题描述:
问题:创建节点的链接列表。每个节点都应该有用于链接列表中下一个节点的学生姓名,年龄,课程编号,成绩和指针。使用追加节点成员函数来生成5个学生的链接列表。创建搜索成员函数以显示获得'A'成绩的学生的姓名。假设只有一名学生获得“A”等级。不太确定如何从这里继续前进。使用链表进行搜索?
不太知道如何从这里移动。我是新来的链接列表/节点,并不太确定我做错了什么。任何帮助将不胜感激。
#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);
}
答
您的if语句在搜索函数中必须是;
if (temp->grade == 'A')
但是,您的问题不在于您对链接列表的理解。你不能正确地写出名字,年龄和coursenum的值。您需要将所有读取的值分配给结构的变量。
temp->name = name;
temp->age = age;
temp->coursenum = coursenum;
temp->grade = grade;
答
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'