牛客网clang++3.3:为什么我的结构体数组经过冒泡排序不能完整输出

野望Echo 2016-12-04 03:55:58
题目是先输入学生人数n,再输入排序模式flag(0代表降序,1代表升序),接着输入n个学生的姓名和成绩。然后,按照排序模式排序并输出,要求稳定的排序算法。
问题:我的代码在本地编译器上可以正常编译运行,但在牛客网clang++3.3编译后总是不能通过测试用例(下面附测试用例),只能输出排序后的前11个数据,那后面的数据跑哪儿去了?
看到别人的插入算法,时间复杂度跟我的没差,但是可以正常通过,求解答,谢谢!
我的代码:
#include <iostream>
#include<string>
using namespace std;
struct Student{
public:
string name;
int score;
};
void changestu(Student &a,Student &b){
Student tmp=a;
a=b;
b=tmp;
}
int main()
{
Student stu[1000];
int n=0;
int flag=0;
while(cin>>n>>flag){
for(int i=0;i<n;i++)
cin>>stu[i].name>>stu[i].score;
if(flag==0){
for(int p=0;p<n;p++){
for(int q=p+1;q<n;q++){
if(stu[p].score<stu[q].score){
changestu(stu[p],stu[q]);
}
}
}
}else{
for(int p=0;p<n;p++){
for(int q=p+1;q<n;q++){
if(stu[p].score>stu[q].score){
changestu(stu[p],stu[q]);
}
}
}
}
for(int r=0;r<n;r++)
cout<<stu[r].name<<' '<<stu[r].score<<endl;
}
}

测试用例:

28
1
qhsq 15
ozslg 79
ncttmtsphb 71
a 39
eeiuyzsj 34
nmlrokx 21
pjizylo 90
ec 45
f 12
sh 31
fm 25
ptprphubqk 29
wxdiwv 0
uhlcpjtxad 60
w 20
zwktbpun 70
efzfkf 69
v 31
rsnrgtl 73
lhdo 76
wt 56
mcdwd 14
ydrnoyd 37
gmlfds 76
zx 1
dqx 98
gz 90
kvbzrwrrjj 13

牛客网上我的测试用例运行结果:

wxdiwv 0
zx 1
f 12
kvbzrwrrjj 13
mcdwd 14
qhsq 15
w 20
nmlrokx 21
fm 25
ptprphubqk 29
v 31
...全文
360 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧