【杭电错题】#12青年歌手大奖赛_评委会打分——最优解

该博客介绍了杭电编程题目中关于青年歌手大奖赛的评分算法,即去掉最高分和最低分后计算平均得分。博主探讨了如何避免冗余操作,提出不需要使用数组的解决方案,并分享了一种边输入边比较大小的简洁代码实现。
摘要由CSDN通过智能技术生成

题目:

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

Input

输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分。

Output

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

Sample Input

3 99 98 97

4 100 99 98 97

Sample Output

98.00

98.50


问题分析:

这道题并不是想不出解题方法,只是感觉存在最优解但想不到,有点嫌弃自己冗长复杂的解法。就是录入数组并逐个排查 最后改数值为0再遍历相加,最后输出平均值。

但如果按照我的解法就要用到数组,并且还要额外遍历两边寻找最大值和最小值

其实这道题可用数组可不用数组

什么时候要用数组呢?

当每个数据都要记录下来二次使用时就要

如输出比平均值大的数字

第一次算平均值 第二次遍历数组比较大小并输出数据

但其实两次是可以合成一次 但真的没想到!

如下这个边写入边比较大小

MIN = 101是为了确保第一个数据能够写进来


代码分析:

#include <stdio.h>

int main(void)
{
	//declare the data.
	int num;
	int sco
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
from selenium import webdriver # 导入时间模块 import time # 导入元素定位功能 from selenium.webdriver.common.by import By # driver.find_element_by_css_selector() 4 一定会报错 弃用 3 # 导入数据请求模块 import requests # 数据解析模块 import parsel # 实例化一个浏览器对象 driver = webdriver.Chrome() # 打开浏览器的窗口 driver.get('https://www.jsyks.com/kmy-mnks') # 强制等待 time.sleep(2) # 最大化浏览器的窗口 driver.maximize_window() # 隐式等待 智能 driver.implicitly_wait(10) # elements 返回的是一个列表对象 lis = driver.find_elements(By.CSS_SELECTOR, '.Content>li') # print(len(lis)) # print(lis) for li in lis: time.sleep(0.2) # 优先考虑使用随机数 rid = li.get_attribute('c') # print(rid) url = f'https://tiba.jsyks.com/Post/{rid}.htm' # 获取到响应体对象的文本数据 response = requests.get(url=url).text # 转对象 selector = parsel.Selector(response) answer = selector.css('#question u::text').get() # print(answer) # 重新赋值 if answer == '对': answer = '正确' elif answer == '错': answer = '错误' # else: 不确定的情况 # print(answer) bs = li.find_elements(By.CSS_SELECTOR, 'B') for b in bs: # 获取选项的内容 choose = b.text # print('题目的选项是', choose) # print('正确答案是', answer) # 可能错题 # if answer in choose: # # 正确答案的点击操作 # b.click() if len(choose) > 2: choose = choose[0] if answer == choose: b.click() # 提交试卷 driver.find_element(By.CSS_SELECTOR, '.btnJJ').click() # 添加阻塞 input() # 关闭浏览器 driver.quit()
06-07
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值