论xls文档
  • 板块灌水区
  • 楼主zhuyucheng6046
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/2 17:37
  • 上次更新2024/8/2 18:56:25
查看原帖
论xls文档
1312199
zhuyucheng6046楼主2024/8/2 17:37

众所周知,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;
}
2024/8/2 17:37
加载中...