输入若干个学生信息(包括学号、姓名和成绩),输入学号为0时输入结束,建立一个单向链表,再输入一个成绩值,将成绩大于等于该值的学生信息输出。
时间: 2023-04-27 15:04:31 浏览: 226
好的,以下是回复:
首先,我们需要定义一个学生信息的结构体,包括学号、姓名和成绩:
struct Student {
int id;
string name;
float score;
};
然后,我们可以定义一个链表节点的结构体,包括一个指向下一个节点的指针和一个指向学生信息的指针:
struct Node {
Student* data;
Node* next;
};
接下来,我们可以编写一个函数来输入学生信息并建立链表:
Node* createList() {
Node* head = NULL;
Node* tail = NULL;
while (true) {
int id;
cout << "请输入学号(输入结束):";
cin >> id;
if (id == ) {
break;
}
string name;
cout << "请输入姓名:";
cin >> name;
float score;
cout << "请输入成绩:";
cin >> score;
Student* student = new Student;
student->id = id;
student->name = name;
student->score = score;
Node* node = new Node;
node->data = student;
node->next = NULL;
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
最后,我们可以编写一个函数来输出成绩大于等于指定值的学生信息:
void printStudents(Node* head, float score) {
Node* p = head;
while (p != NULL) {
if (p->data->score >= score) {
cout << "学号:" << p->data->id << ",姓名:" << p->data->name << ",成绩:" << p->data->score << endl;
}
p = p->next;
}
}
完整代码如下:
阅读全文