你打开迷你歌词的配置(可以在winamp里选参数设置:一般用途:minilyrics)
设置:wmp10前打勾
OK,
LZ,“server.properties”的作用是设置你的服务器的基本情况,
所以我就介绍下里面常用的的设置指令:
(不太重要的我就不说了)
1)“level-name=”,
这个是设置你创立的世界的名称(只能是英文名),
2)“server-ip=”,
是设置你的服务器地址的位置,
一般会在后面填写你的外网IP/服务器域名/hamachi的IPv4地址,
如图:
3)“max-build-height=256”,
这个最高的建筑高度,
一般来说,高度越高,会对网络和电脑配置的也就越高;
4)“spawn-npcs=true”,
这个是是否生产NPC(和村庄);
5)“white-list=false”,
是否开启白名单;
6)“spawn-animals=true”,
是否自然生成动物;
7)“online-mode=false”
设置成false,D版才能联机;
8)“pvp=true”,
是否开启PK;
9)“difficulty=3”,
服务器的难度选择,
0是和平,1是简单 2是普通 3是困难;
10)“gamemode=0”,
玩家开始时游戏模式,
0 生存,1 创造, 2 冒险;
11)“max-players=10”,
最大的玩家数;
12)“motd=A Minecraft Server ”,
“motd=”后面可以写你的服务器介绍,不过仅限英文。
就是这样,
以上纯手打,
满意请采纳。
在目录的cstrike\addons\amxmodx\configs\zombieplague里修改就行了,里面有很多:zp_delay 18 // 在第几秒时产生僵尸 (随机产生)。
zp_lighting "b" // 地体的亮度,用英语字母表示 ["a"-最暗 // "z"-最亮 // "0"-禁用地图照明dust1用c参数。大家也可以使用参数 e]。
zp_thunderclap 500 // 闪电的频率 [0-禁用]。
zp_triggered_lights 1 // 地图本身发出的光 (比如说路灯)。
zp_remove_doors 0 // 删除门,以防止玩家利用门作为bug [0-不删除 // 1-只删除旋转门 // 2-删除所有的门]。
zp_blockuse_pushables 1 // 限制 + 使用在实体上来防止速度的错误。
zp_block_suicide 0 // 防止玩家杀死自己1。
zp_respawn_on_suicide 0 // 如果玩家自杀的话同样复活他们。
zp_respawn_after_last_human 0 // 如果只剩最后一个人类了,那么复活玩家1。
zp_respawn_on_worldspawn_kill 0 // 复活被地图杀死的玩家1。
zp_random_spawn 1 // 地图上随机出生 (将使用死亡模式的插件,如果有的话)。
zp_remove_dropped 20 // 在多少秒后删除掉落在地板上的武器 [0-禁用]0。
zp_remove_money 0 // 删除掉玩家的钱。
zp_buy_custom 1 // 启动购买菜单1。
zp_admin_models_human 1 // 开启管理员的人类模型。
zp_admin_models_zombie 1 // 开启管理员的僵尸模型。
zp_zombie_classes 1 // 启动僵尸的类型。
zp_stats_save 1 // 当玩家断开的时候暂时储存他的金币和僵尸类型。
zp_starting_ammo_packs 20 // 玩家刚进入时给予的金币。
zp_random_weapons 1 // 开启玩家随机武器。
zp_respawn_on_worldspawn_kill 1 // Respawn玩家被杀死后变成世界察看模式。
zp_prevent_consecutive_modes 0 // 防止同样的游戏模式连续开启1。
// 死亡设置
// ----------
zp_deathmatch 3 // 在玩家死后复活为: [0-禁用 // 1-人类 // 2-僵尸 // 3-随机 // 4-较少阵营]。
zp_spawn_delay 0 // 玩家死后复活延迟时间。
zp_spawn_protection 0 // 在玩家复活后的保护时间 [0-禁用]。
zp_infection_allow_respawn 1 // 开启允许Respawn玩家控制“成为人类/僵尸”
zp_nem_allow_respawn 1 // 开启允许Respawn玩家开启复仇之神模式0。
zp_surv_allow_respawn 1 // 开启允许Respawn玩家开启幸存者模式0。
zp_swarm_allow_respawn 1 // 开启允许Respawn玩家开启对战模式0。
zp_plague_allow_respawn 1 // 开启允许Respawn玩家开启军团模式0。
zp_respawn_zombies 1 // 开启允许Respawn玩家杀死僵尸。
zp_respawn_humans 1 // 开启允许Respawn玩家杀死人类。
zp_respawn_nemesis 1 // 开启允许Respawn玩家杀死复仇之神。
zp_respawn_survivors 1 // 开启允许Respawn玩家杀死幸存者。
// 道具设置
// -----------
zp_extra_items 1 // 开启道具。
zp_extra_weapons 1 // 开启道具中的武器。
zp_extra_nvision 1 // 开启道具中的夜视仪。
zp_extra_antidote 1 // 开启道具中的生化病毒解药。
zp_extra_madness 1 // 开启道具中的无敌药水。
zp_extra_madness_duration 50 // 无敌药水的持续时间5.0。
zp_extra_infbomb 1 // 开启道具中的病毒炸弹。
zp_extra_infbomb_limit 0 // 每一轮购买限制“生化病毒炸弹”的数量。
// 照明弹和夜视仪
// ------------------------。
zp_nvg_give 1 // 自动给与夜视仪 [0-禁用 // 1-启动 // 2-启用, 但不自动打开]。
zp_nvg_custom 1 // 开启自定义的夜视仪。
zp_nvg_size 500 // 夜视仪的可视范围 (半径)。
zp_nvg_color_R 20 // 僵尸 自定义夜视仪的颜色 (CSOL官方红色)。
zp_nvg_color_G 2 // 僵尸 自定义夜视仪的颜色 (绿色)。
zp_nvg_color_B 2 // 僵尸 自定义夜视仪的颜色 (蓝色)。
zp_nvg_hum_color_R 10 // 人类/幸存者 自定义夜视仪的颜色 (红色10)(CSOL官方红色10)。
zp_nvg_hum_color_G 2 // 人类/幸存者 自定义夜视仪的颜色 (绿色4)(绿色2)。
zp_nvg_hum_color_B 2// 人类/幸存者 自定义夜视仪的颜色 (蓝色4)(绿色2)。
zp_nvg_nem_color_R 10 // 复仇之神 自定义夜视仪的颜色 (CSOL官方红色)。
zp_nvg_nem_color_G 2 // 复仇之神 自定义夜视仪的颜色 (绿色)。
zp_nvg_nem_color_B 2 // 复仇之神 自定义夜视仪的颜色 (蓝色)。
zp_flash_custom 0 // 使用自定义的手电筒1。
zp_flash_size 20 // 自定义手电筒照亮区域大小(半径)
zp_flash_drain 0 // 自定义手电筒的电量流失率[ 0 -无限手电筒]。
zp_flash_charge 5 // 自定义手电的充电时间 [0-禁止充电]。
zp_flash_distance 2000 // 自定义手电筒最大距离。
zp_flash_color_R 100 // 自定义手电筒的颜色 (红色)。
zp_flash_color_G 100 // 自定义手电筒的颜色 (绿色)。
zp_flash_color_B 100 // 自定义手电筒的颜色 (蓝色)。
zp_flash_show_all 1 // 是否让每个玩家看到互相的手电颜色。
// 击退
// ---------
zp_knockback 1 // 开启武器击退 (注意: pain shock free increases knockback effect)。
zp_knockback_damage 1 // 用给予僵尸的伤害值来计算击退。
zp_knockback_power 1 // 用使用的武器威力来计算击退。
zp_knockback_zvel 0 // 击退影响垂直方向的速度。
zp_knockback_ducking 0.25 // 僵尸蹲着时的击退比例 [0-禁用僵尸蹲着时的击退]。
zp_knockback_distance 500 // 僵尸被击退的最大距离。
zp_knockback_nemesis 0.25 // 复仇之神的击退比例 [0-禁用复仇之神的击退]。
// 超级跳
// --------
zp_leap_zombies 1 // 让僵尸可以超级跳 [0-禁止 // 1-每一个僵尸 // 2-只有第一个僵尸 // 3-只有最后一个僵尸]。
zp_leap_zombies_force 500 // 僵尸超级跳的跳起距离。
zp_leap_zombies_height 300 // 僵尸超级跳的跳起高度。
zp_leap_zombies_cooldown 0 // 僵尸超级跳的冷却时间。
zp_leap_nemesis 1 // 让复仇之神可以超级跳。
zp_leap_nemesis_force 500 // 复仇之神超级跳的跳起距离。
zp_leap_nemesis_height 300 // 复仇之神超级跳的跳起高度。
zp_leap_nemesis_cooldown 0 // 复仇之神超级跳的冷却时间。
zp_leap_survivor 1 // 让幸存者可以超级跳。
zp_leap_survivor_force 500 // 幸存者超级跳的跳起距离。
zp_leap_survivor_height 300 // 幸存者超级跳的跳起高度。
zp_leap_survivor_cooldown 1 // 幸存者超级跳的冷却时间。
// 人类
// ------
zp_human_health 200 // 生命值。
zp_human_last_extrahp 10000 // 最后一个人类的生命值奖励。
zp_human_speed 240 // 速度。
zp_human_gravity 1.0 // 重量。
zp_human_armor_protect 1 // 在盔甲完全消失后才会被感染。
zp_human_unlimited_ammo 0 // 无限弹药 [0-禁用 // 1-无限的弹夹弹药 // 2-无限的后备弹药]2。
zp_human_damage_reward 2 // 当人类给与僵尸多少伤害时可以获得金币。
zp_human_frags_for_kill 1 // 人类杀死僵尸得几分。
// 自定义手雷
// ---------------。
zp_fire_grenades 1 // 开启燃烧弹 (就是高爆手雷)。
zp_fire_duration 10 // 燃烧的秒数。
zp_fire_damage 20 // 燃烧的伤害 (每0.2秒)。
zp_fire_slowdown 0.5 // 燃烧减慢速度的比例 (0.5 = 减少一半的速度) [0-禁用]。
zp_frost_grenades 1 // 开启冰冻弹 (就是闪光弹)。
zp_frost_duration 3 // 冻结的时间。
zp_flare_grenades 1 // 开启照明弹 (就是烟雾弹)。
zp_flare_duration 6000 // 照明弹的维持时间。
zp_flare_size 45 // 照亮的范围 (半径)。
zp_flare_color 4 // 光亮的颜色 [0-白色 // 1-红色 // 2-绿色 // 3-蓝色 // 4-完全随机 // 5-在红绿蓝中随机]。
// 僵尸
// -------
zp_zombie_first_hp 50 // 第一只僵尸生命值的倍数 (4 = 四倍生命,V2版本的僵尸血良设置较低,此处平衡一下)。
zp_zombie_armor 0.55 // 防弹衣的减伤比例 (0.75 = 僵尸只受到75%的伤害)0.40。
zp_zombie_hitzones 0 // 允许的攻击区域 (控制fun.inc的身体部位) [0-禁用]0。
zp_zombie_infect_health 400 // 每感染一个人类得到多少的生命值。
zp_zombie_fov 0 // 可视范围 [0-不变]。
zp_zombie_silent 1 // 是否开启僵尸的脚步声。
zp_zombie_painfree 0 // 僵尸不被击晕(受到大伤害时屏幕移动) [0-禁止 // 1-每一个 // 2-只有最后的僵尸]。
zp_zombie_bleeding 1 // 僵尸会留下脚印/血迹在地板上1。
zp_zombie_infect_reward 2 // 僵尸每感染/杀死一个人类给与的金币。
zp_zombie_frags_for_infect 3 // 僵尸传染人类得几分。
// 特殊效果
// ---------------。
zp_infection_screenfade 1 // 当玩家被感染时屏幕退色。
zp_infection_screenshake 1 // 当玩家被感染时屏幕晃动1。
zp_infection_sparkle 1 // 被感染时闪烁效果1。
zp_infection_tracers 1 // 被感染时追踪效果1。
zp_infection_particles 1 // 被感染时颗粒效果1。
zp_hud_icons 1 // 是否在HUD面板上显示小的表示被感染;燃烧;冰冻的图标。
// 复仇之神模式设置
// -------
zp_nem_enabled 1 // 开启复仇之神模式。
zp_nem_chance 5 // 产生的概率 (在多少次中开启一次)。
zp_nem_min_players 0 // 最低需要玩家的数量。
zp_nem_health 0 // 生命值 [0 - 人类数量*僵尸的生命值]。
zp_nem_base_health 0 // 相应的生命值 [0 - 使用第一只僵尸的生命值]。
zp_nem_speed 250 // 速度。
zp_nem_gravity 0.5 // 重量 (0.5 = 一半)。
zp_nem_damage 250 // 每击中一次的损害值。
zp_nem_glow 1 // 开启身体发光。
zp_nem_aura 0 // 开启身体向外发光。
zp_nem_painfree 1 // 不被击晕(受到大伤害时屏幕震动)。
zp_nem_ignore_frags 0 // 开启复仇之神杀死人类不获得分数。
zp_nem_ignore_rewards 0 // 开启复仇之神不获得子弹包。
// 幸存者模式设置
// -------
zp_surv_enabled 1 // 开启幸存者。
zp_surv_chance 10 // 产生的概率 (在多少次中开启一次)。
zp_surv_min_players 10 // 最低需要玩家的数量。
zp_surv_health 0 // 生命值 [0 - 僵尸数量*人类的生命值]。
zp_surv_base_health 0 // 相应的生命值 [0 - 使用人类的生命值]0。
zp_surv_speed 230 // 速度。
zp_surv_gravity 1.25 // 重量 (0.5 = 一半)。
zp_surv_glow 1 // 开启身体发光。
zp_surv_aura 0 // 开启身体向外发光。
zp_surv_painfree 1 // 不被击晕。
zp_surv_ignore_frags 0 // 开启人类杀死僵尸不获得分数1。
zp_surv_ignore_rewards 0 // 开启幸存者不获得子弹包1。
zp_surv_weapon "weapon_m249" // 幸存者的武器 (设置为默认武器)。
zp_surv_unlimited_ammo 1 // 幸存者无限弹药 [0-禁用 // 1-无限的后备弹药 // 2-无限的弹药]。
// 对战模式
// ----------
zp_swarm_enabled 1 // 开启对战模式。
zp_swarm_chance 20 // 开启的概率 (在多少次中开启1次)。
zp_swarm_min_players 14 // 开启对战模式必须的最少玩家数。
// 多人传染模式
// ------------------。
zp_multi_enabled 1 // 开启多人传染模式。
zp_multi_chance 1 // 开启的概率 (在多少次中开启1次)20。
zp_multi_min_players 12 // 开启多人传染模式必须的最少玩家数。
zp_multi_ratio 0.10 // 感染的比例 (僵尸的数量 = 玩家数*这个值)0.20。
// 军团模式
// -----------
zp_plague_enabled 1 // 开启军团模式。
zp_plague_chance 30 // 开启的概率 (在多少次中开启1次)。
zp_plague_min_players 20 // 开启军团模式必须的最少玩家数。
zp_plague_ratio 0.5 // 感染的比例 (僵尸的数量 = 玩家数*这个值)。
zp_plague_nem_number 2 // 复仇之神(伪)的数量1。
zp_plague_nem_hp_multi 0.5 // 复仇之神(伪)的HP倍数 (0.5 = 50%的生命)。
zp_plague_surv_number 2 // 幸存者(伪)的数量1。
zp_plague_surv_hp_multi 0.5 // 幸存者(伪)的HP倍数 (0.5 = 50%的生命)。
// 其它设置
// -------------------。
mp_flashlight 1 // 开启手电筒。
mp_footsteps 1 // 开启脚步。
mp_playerid 1 // 是否指向玩家能够见到玩家名称。
sv_maxspeed 320 // 防止cs将人类/和僵尸的最大速度限制在320。
mp_consistency 0。
r_detailtextures 1。
//补给箱插件设置
dtgift_reloadpos 1 //开启此插件(一旦打开,无法关闭.重新建立游戏即可关闭.)。
dtgift_time 30.0 //刷新补给箱的间隔时间。
dtgift_pertime 5 //每次刷新几个礼物. 默认1个 最多5个。
//_幽灵
zp_ghost_invisibility 5 //如何将无形的幽灵,请注意,您可以只设置0 (最大值无形) - 255 (最大值可见) 。5。
zp_ghost_glow_red 150 // 这是红色。
zp_ghost_glow_green 150 // 这是绿色。
zp_ghost_glow_blue 150 // 这是蓝色。
//自愈僵尸
zp_zclass_regen 1 //或0关闭,默认值是1。
zp_regen_time 2 //多少秒后会愈合,默认值为2秒后。
p_regen_amount 50 //HP是多少,那麽您将在医治过程中,默认是25hp/2秒。
// 跳跃僵尸
// -------------------。
zp_tight_jump 2 // 在空中最多跳跃的次数。
// 爬墙僵尸
// -------------------。
zp_wallclimb 1 // 设置僵尸是否能爬墙(0为关闭;1为按使用键爬墙;2为按住跳和顿爬墙)。
zp_wallclimb_nemesis 0 // 在复仇之神模式时不显示爬墙僵尸(1为显示)。
zp_wallclimb_survivor 0 // 在幸存者模式时不显示爬墙僵尸(1为显示)。
//--------------------------------------。
//zp_extra_flamethrower.amxx ; 火焰喷射器。
zp_ft_enable 1 ; 打开或关闭,默认值为1.。
zp_ft_admin_can_buy 0 ; 只有管理员可以买喷火器,默认为0。
zp_ft_client_buy 1 ; 这意味著,你可以购买这种武器,默认值是1。
zp_ft_obey_buyzone 0 ; 这意味著,您必须购买它只有当您的buyzone ,默认为0。
zp_ft_obey_buytime 0 ; 这就是说,你只能买buyzone秒,如果没有通过,预设值为0。
zp_ft_cost 5 ; 这意味著多少喷火器费用。
zp_ft_fuelcost 5 ; 多少燃料的火焰喷射器将成本。
zp_ft_fueltank 2500 ; 多少燃料弹药55。
zp_ft_damage 2500 ; 多少会损害到僵尸。
zp_ft_xplode_dmg 500 ; 多少损害将是是否会发生爆炸。
zp_ft_damage_dis 500 ; 有多远,您可以拍摄火焰120。
zp_ft_splash_dis 40 ; 有多远消防将启动40。
zp_ft_ammo_after_kill 3 ; 多少弹药包,您会收到当你杀僵尸。
zp_ft_frags_after_kill 3 ; 多少frags你可以当你杀僵尸。
//zp_shootable_objects.amxx ;攻击移动物体。
zp_pushpwr_humans 2.0 ;多麼强大人类拍摄物体距离。
zp_pushpwr_zombies 1.0 ;多麼强大僵尸拍摄物体距离5.0。
zp_push_momentum 0 ;康维pushable的速度向其他。
//zp_extra_invisible.amxx ;隐身。
;zp_invisible 1 ;默认值是1。
;zp_invisible_cost 5 ;有多少这种能力将免费为您。
;zp_invisble_amount 5 ;无形的金额。
;zp_invisible_long 120 ;你多久会隐形。
// 激光拌雷
// -------------------。
zp_ltm_mode 1 ;激光地雷, 1 激光拌雷。
zp_ltm_ammo 99999 ;Inf. Ammo。
zp_ltm_health 500 ;激光地雷的生命值。
zp_ltm_teammax 22 ;一队中最大的激光地雷数。
zp_ltm_radius 800 ;伤害半径。
zp_ltm_rdmg 2200 ;Radius DMG(伤害值?)。
zp_ltm_ff 0 ;团队伤害 (推荐为0)。
zp_ltm_cbt ALL ;使用队伍 (推荐为 ALL 或 CT)。
zp_ltm_line 1 ;看不到激光?。
zp_ltm_glow 1 ;激光发光.。
zp_ltm_bright 100 ;激光的亮度.。
zp_ltm_color 0 ;0 为队伍颜色,1 为绿色。
zp_ltm_ldmgmode 1 ;伤害方式(0 - 燃烧伤害, 1 - 一次伤害, 2 - 1 每秒伤害)。
zp_ltm_ldmgseconds 1 ;只用於模式2, 伤害 / 秒. 默认 1 (秒)。
zp_ltm_startammo 1。
zp_ltm_cmdmode 1 ;0= 使用模式, 1 = 绑定模式。
zp_ltm_bind 1 ;0 = 没有自动绑定 1= 自动绑定为 'P'。
// 心跳插件
// -------------------。
zp_heartbeat_hp 100 ; 当生命值减到多少时听见心跳声。
// 飞行器+火箭筒
// -------------------。
zp_jetpack 0 // 使用飞行器(0为禁用;1为按使用键E;2为跳+蹲)1。
zp_jp_forward_speed 300 // 设置速度(当你飞行或是前进)。
zp_jp_up_speed 35 // 设置上升速度(当你按下鼠标左键并跳起来)。
zp_jp_accelerate 100 // 设置多快才能达到最大前进速度。
zp_jp_rocket_delay 1 // 等待下一次发射火箭弹需要多少秒(秒)12。
zp_jp_rocket_speed 2000 // 设置火箭弹速度1500。
zp_jp_rocket_damage 2500 // 设置火箭弹最大伤害。
zp_jp_damage_radius 500 // 设置火箭弹伤害半径。
zp_jp_max_engery 1000 // 设置飞行器最大能量。
zp_jp_engery 10 // 设置飞行的能量消耗。
zp_jp_regain_energy 100 // 设置在地上时能量的恢复速度。
zp_jp_energy_cal 1.0 // 设置"zp_jp_engery" 和 "zp_jp_regain_energy"的时间间隔。
zp_jp_oneround 0 // 设置道具的使用(0为当本回合还有人活著就留到下一回合;1为只有一个回合)。
//zp_extra_m4_m203.amxx ;超级M4A1。
zp_m203_cost 20 // 多少M4货币供应+ M203将成本。5。
zp_m203_extra_ammo_packs 3 // 多少额外的弹药包后,您将获得杀害僵尸。5。
ZP_MaxAmount_TE 100 // 最高数额多少T的可容纳M4货币供应+ M203 。
ZP_MaxAmount_CT 100 // 最高数额多少CT的可容纳M4货币供应+ M203 。
ZP_GrenadeRT 1.0 // 手榴弹加载时间。
ZP_HeGrenadeMD 2500 // 40毫米榴弹,他最大的损害。
ZP_HeGrenadeDR 250 // 40毫米榴弹损害半径他..。
ZP_HeGrenadeMC 100 // 40毫米榴弹,他的最高金额可以得到了。5。
ZP_HeGrenadePR 20 // 40毫米榴弹,他的价格在$ ..。
ZP_GasGrenadeMD 3500 // 40毫米榴弹最大天然气损害。
ZP_GasGrenadeDR 500 // 40毫米天然气手榴弹损害半径。
ZP_GasGrenadeMC 100 // 40毫米天然气手榴弹的最高金额可以得到了。5。
ZP_GasGrenadePR 20 // 40毫米榴弹天然气的价格在$ 。
ZP_SpawnMode 0
我建议你用我发的cs1.6僵尸插件:
跟csol一模一样。
加QQ597715662
新鲜出炉的源码,仅供参考:
#include <stdio.h>。
void ShowSingerData();。
void AddNewSingeData();。
#define USER_LEN 16。
#define SOCRE_LEN 10。
#define MAX_SINGER 10。
struct s_Singer。
float avgScore ; // 歌手平均分。
int score[SOCRE_LEN] ; // 歌手分数记录。
int num; // 参赛编号。
char name[ USER_LEN ] ; // 歌手名字。
struct s_Singer* pNext ;。
struct s_Singer* pPrev ;。
};
static int g_CurSingerNum ; // 当前歌手编号。
static struct s_Singer g_Singers[MAX_SINGER]; // 参赛的歌手。
static struct s_Singer* g_SingerList; // 比赛后的歌手排名表。
void ShowCmd()
char cmd = '\0';。
while(true)
{
printf("welcom The Singing Contest\n");。
printf("\t'a'-add new singer information\n");。
printf("\t's'-show The Singing Contest List\n");。
printf("\t'q'-exit!\n");。
fflush(stdin);。
if( (cmd=getchar())!=EOF)。
{
if( cmd == 'q' ) 。
{
break;
}
switch (cmd)。
{
case 'a': AddNewSingeData();break;。
case 's': ShowSingerData(); break; 。
}
}
}
void ShowSingerData()。
printf("num\tavg\tname\n");。
static struct s_Singer* t ;。
t = g_SingerList;。
while( t != NULL )。
{
printf( "%d\t%0.2f\t%s\n",t->num,t->avgScore,t->name );。
t=t->pNext;。
}
void AddSinger( struct s_Singer *pSinger )。
if( g_SingerList != NULL )。
{
struct s_Singer* t =g_SingerList;。
while( t!=NULL && t->pNext )。
{
if( t->avgScore < pSinger->avgScore )。
{
break;
}
t = t->pNext;。
}
if( t != g_SingerList && t->pNext!=NULL )。
{
pSinger->pPrev = t->pPrev;。
pSinger->pNext = t;。
t->pPrev->pNext = pSinger;。
t->pPrev = pSinger; 。
}
else
{
if( t == g_SingerList )。
{
if( g_SingerList->avgScore < pSinger->avgScore )。
{
pSinger->pNext = t;。
t->pPrev = pSinger;。
g_SingerList = pSinger;。
}
else
{
g_SingerList->pNext = pSinger;。
pSinger->pPrev = g_SingerList;。
}
}
else
{
if( t->avgScore>pSinger->avgScore)。
{
t->pNext=pSinger;。
pSinger->pPrev = t;。
pSinger->pNext = NULL;。
}
}
}
}
else
{
g_SingerList = pSinger;。
return;
}
void DealLowHigh(struct s_Singer *pSinger)。
int l=0,low=pSinger->score[0];。
int h=0,hight=pSinger->score[0];。
for( int i=0;i<SOCRE_LEN;++i )。
{
if( pSinger->score[i]<low )。
{
low = pSinger->score[i];。
l=i;
}
if( pSinger->score[i]>hight )。
{
hight = pSinger->score[i];。
h=i;
}
}
pSinger->score[l] = 0 ;。
pSinger->score[h] = 0 ;。
void CacluateAvg( struct s_Singer *pSinger )。
int sum = 0;
for( int i=0;i<SOCRE_LEN;++i )。
{
sum+=pSinger->score[i];。
}
pSinger->avgScore = 1.0F*sum/(SOCRE_LEN-2);。
void AddNewSingeData()。
if( g_CurSingerNum>=MAX_SINGER )。
{
printf("sorry! the singing contest has overed!\n");。
return;
}
printf("Plz,enter the singer's information\n");。
struct s_Singer* pSinger = &g_Singers[g_CurSingerNum];。
pSinger->num = ++g_CurSingerNum;。
fflush(stdin);。
if( scanf_s("%s %d %d %d %d %d %d %d %d %d %d",。
pSinger->name,。
USER_LEN,
&pSinger->score[0],。
&pSinger->score[1],。
&pSinger->score[2],。
&pSinger->score[3],。
&pSinger->score[4],。
&pSinger->score[5],。
&pSinger->score[6],。
&pSinger->score[7],。
&pSinger->score[8],。
&pSinger->score[9]) != EOF )。
{
DealLowHigh( pSinger );。
CacluateAvg( pSinger );。
AddSinger( pSinger );。
}
int main(int argc, char* argv[])。
ShowCmd();
return 0;
运行结果