2016/08/02在实习僧网站做了一道笔试题,题目是:
最近有一种简单的扑克牌游戏特别流行,作为时尚潮流的风向标,小B也对这种游戏颇有兴趣。
游戏采用计分制,规则非常的简单,游戏过程中每个玩家会得到或者失去一些分数,游戏结束时,根据玩家的得分确定胜者,根据游戏规则可能出现所有玩家都失分的情况,即不保证游戏结束一定有得到正分的玩家出现,每次玩家得分的情况已“name score”的形式记录在单独的一行,其中name代表玩家姓名,score代表玩家得分,score为一个整数,若是为负数则表明玩家失分
若游戏结束时只有一个玩家的分数值最高,则该玩家获胜,若有多个玩家在游戏结束时,分数一样且都为最高,此时确定获胜的玩家会变得麻烦,根据大家都接受的规则,当游戏过程中有多人都得到最高分的时候,最先拿到最高分的玩家获胜。
输入输出案例:
2
3
mike 2
mike 3
jhon 5
4
zc 3
tl 2
taoluo 4
zc 1
打印 mike taoluo
下面附上我的解决代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXPLAYER 100
FILE *listing=fopen("2.txt","r");
struct play{
char str[100]="";
int score=0;
play *next=NULL;
};
play *total[MAXPLAYER+10]={NULL};
play *winner[MAXPLAYER+10]={NULL};
int count=0;
void scan(void)
/**这个函数将所有的测试数据按组存储在每一条单链表中了*/
{
play *head=NULL;
play *tail=NULL;