64,648
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include <cstring>
using namespace std;
struct link {
char name[100];
int id;
double sco;
link *next;
};
int main()
{
link *head, *p,*q,*mid;
int n, i;
head = p = new link;
cout << "please enter the student's number." << endl;
cin >> n;
for (i = 0;i < n + 1; i++)//一个个输入数据
{
q = new link;
//q = p->next; //导致异常退出。因为q指向了NULL,因此下面的输入有问题。
cout << "please enter the " << i << " student's name,id and score in order.";
cin>> q->id >> q->sco;
cin.getline(q->name, 100); /*这儿应该是q->name,不是p->name*/
p->next = q; //将新节点加入链表
p = q; //修改尾节点
}
mid = new link;//定义一个新的储存节点
p = head->next;
double score=0;
for (i = 0;i < n + 1;i++)
{
if (p->sco > score)//比较大小
{
score = p->sco;
//strcpy_s(mid->name, p->name); //字符赋给一个链表节点
strcpy(mid->name, p->name);
mid->id = p->id;
mid->sco = p->sco;
}
p = p->next;
}
cout << "name is :" << endl << mid->name << endl << " id is:" << mid->id << endl<<"score is :" << mid->sco << endl;
return 0;
}
参考一下吧
注释的那句导致的程序异常退出;