社区讨论

#6WA求助

CF2AWinner参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lod73bs2
此快照首次捕获于
2023/10/31 01:49
2 年前
此快照最后确认于
2023/11/05 12:17
2 年前
查看原帖
CPP
#include<stdio.h>
#include<string.h>
using namespace std;
struct player/*玩家信息*/ 
{
	char name[40];/*名称*/
	int score;/*总分*/
	int t;/*最后得分的时间*/
}p[1001];
int total=0,n,f,k;char plc[40];
int findplayer(char *pl)/*通过名称寻找玩家*/ 
{
	for(int i=1;i<=total;i++)
		if(strcmp(p[i].name,pl)==0)/*strcmp比较*/ 
			return i; /*返回该玩家下标*/
	return -1;/*找不到*/
}
int findmax()
{
	int mp=1;/*最大者下标*/
	for(int i=2;i<=total;i++)
		if((p[mp].score<p[i].score)||((p[mp].score==p[i].score)&&(p[mp].t>p[i].t)))
			mp=i;
	return mp;
}
int main()
{
/*	freopen("in.txt","r",stdin);*/
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%s",plc);
		f=findplayer(plc);
		if(f==-1)/*新申请*/
		{
			total++;/*当前玩家数+1*/ 
			strcpy(p[total].name,plc);/*存储名称*/
			scanf("%d",&p[total].score);
			p[total].t=i;/*记录时间*/
		}
		else
		{
			scanf("%d",&k);
			p[f].score+=k;/*得分累加*/
			p[f].t=i;/*记录时间*/
		}
	}
	f=findmax();
	printf("%s\n",p[f].name);
	return 0;
} 

回复

1 条回复,欢迎继续交流。

正在加载回复...