众所周知,xls文档是用来排序的,但它有一个问题:按字典序。
假设甲,乙都得了300分,单排序后甲是第一,乙是第二,(因为甲的首字母是j,乙的字典序是y,按字典序是甲在前),这个文档不考虑并列,这肯定是不公平的。都是一样的分,凭什么名次不一样?
我有个同学之前就因为这个字典序吃了亏,全市200多名,处理并列后,全市是第20多名。
为了证明有的人是“清白”的,附上排名代码(可能不快):
#include<bits/stdc++.h>
using namespace std;
struct a
{
int b,c,d,zongfen;
string name;
} a[10000];
int main()
{
int n=0;
cout<<"输入人数"<<endl;
int y;
cin>>y;
cout<<"依次输入名字,语文成绩,数学成绩,英语成绩"<<endl;
for(int i=1;i<=y;i++)
{
cin>>a[i].name >>a[i].c >>a[i].b >>a[i].d ;
a[i].zongfen =a[i].b +a[i].c +a[i].d ;
}int sum=1;
for(int i=300;i>=0;i--)
{
for(int j=1;j<=y;j++)
{
if(a[j].zongfen ==i)
{
cout<<a[j].name <<" "<<"第"<<sum<<"名"<<" "<<a[j].c <<" "<<a[j].b <<" "<<a[j].d<<" "<<a[j].zongfen <<endl;
n++;}
}
if(n>0)
sum++;
n=0;
}
return 0;
}