欧布先生在闲暇之余喜欢玩网络游戏打发时间。最近,他准备开始玩一款新出的热门网游“幽游@之刻”。他注册账号登录游戏后,开始选择玩家角色。该游戏有N个角色供玩家选择,每个角色有好多不同的属性,不过欧布先生选角色仅根据下原则:
(1) 只选男角色,不选女角色;
(2) 优先选择攻击力值最大的角色;
(3) 如果两个角色的攻击力一样,那么就选择防御力值最大的角色。
假设该游戏满足以上原则的角色`“只有一个”,那么请你帮欧布先生找出他。
Input
第一行为一个正整数N,表示角色数量。
之后为N行数据,每行数据格式如下:
id,attack,defence,sex
id为整数,表示角色编号;attack 为角色攻击力;defence 为角色防御力;sex 为角色性别,只能为M(男)或F(女)。
Output
角色id号。
Sample Input
3
1,100,80,F
2,90,70,M
3,90,65,M
Sample Output
2
#include<stdio.h>
//by link 7
struct game//定义一个结构体来存数据
{
int id[100],attack[100],defence[100];
char sex[100];
};
int main(void)
{
struct game game1;
int play,j=0,z,i=0,bi1,bi2,h=0;
int count[100];
scanf("%d",&play);
for(j=0;j<play;j++){
scanf("%d,%d,%d,%c",&game1.id[j],&game1.attack[j],&game1.defence[j],&game1.sex[j]);
}
for(z=0;z<play;z++){
if(game1.sex[z]=='M'){count[i]=game1.id[z];i++;}//先判定性别,顺便记录位置
else {continue;};
};
bi1=count[h]-1;
bi2=count[h+1]-1;
for(h=0;h<i-1;){//进行比较
if(game1.attack[bi1]>game1.attack[bi2]){h=h+1;bi2=count[h+1]-1;continue;
}
if(game1.attack[bi1]<game1.attack[bi2]){h=h+1;bi1=bi2;bi2=count[h+1]-1;continue;
}
if(game1.attack[bi1]==game1.attack[bi2]){
if(game1.defence[bi1]>game1.defence[bi2]){h=h+1;bi2=count[h+1]-1;continue;}
if(game1.defence[bi1]<game1.defence[bi2]) {bi1=bi2;h=h+1;bi2=count[h+1]-1;continue;}
}
}
printf("%d",bi1+1);
return 0;
}
本文介绍了一个基于特定条件筛选游戏角色的算法实现。该算法通过输入不同角色的属性数据,包括攻击力、防御力及性别等信息,最终帮助玩家选择最合适的男性角色。
273

被折叠的 条评论
为什么被折叠?



