有几个隐蔽的小错误:
一是,没有写return
bool cmp1(student a,student b)
{
if (a.slove != b.slove)
return a.slove > b.slove;
else
a.time < b.time; }
二是,题目中只说了负数,没说是-1结束
while (cin>> n&&n != -1) 改为 n >= 0
三是,pX没有初始化:
memset(slovenum, 0, sizeof(slovenum));
这里应把p1,p2,p3,p4也初始化为0.