请问用c++怎么打出这个?

使用动态链表方式建立节点,输入三个学生的学号姓名和成绩,求出成绩最高的那位同学的学号和姓名

struct Student
{
string name;
string id;
int score;
};
struct Node
{
Student value;
Node * next;
};
int main()
{
Node * list = new Node;
list->next = NULL;
Node *p = list;
Node pMax = list;
for (int i = 0; i < 3; i++)
{
cin >> p->value.id >> p->value.name >> p->value.score;
if (p->value->score > pMax->score) pMax = p;
p->next = new Node;
p = p->next;
}
cout<< p->value.id << p->value.name << p->value.score;
return 0;
}