7-42 sdut-循环-3-评委评分(II)

这是一个关于全国中小学生Scratch作品大赛评分系统的程序设计问题。程序从输入中读取评委数量和评分,自动去除最高分和最低分,计算平均分。程序使用Java编写,通过Scanner获取输入,然后计算并输出最高分、最低分和平均分,结果保留两位小数。

7-42 sdut-循环-3-评委评分(II)


全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。

输入格式:

输入数据包括两行:
第一行为n,表示n个评委,n>2。
第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。

输出格式:

最高分
最低分
平均分
说明:最高分、最低分、平均分均保留两位小数。

输入样例:

在这里给出一组输入。例如:

6
10 9 8 7.9 9 9.5

输出样例:

在这里给出相应的输出。例如:

最高分10.00
最低分7.90
平均分8.88
import java.util.Scanner;
public class Main{
 public static void main(String[] args){
    
     Scanner cin=new Scanner(System.in);
     int n=cin.nextInt();
     double max=-1;
     double min=11;
     double sum=0;
for(int i=1;i<=n;i++)
{
    double x=cin.nextDouble();
    if(x>max)
        max=x;
    if(x<min)
        min=x;
    sum+=x;
}
     System.out.println("最高分"+String.format("%.2f",max));
     System.out.println("最低分"+String.format("%.2f",min));
     System.out.print("平均分"+String.format("%.2f",(sum-max-min)/(double)(n-2)));
 }  
}

![](https://cdn.jsdelivr.net/gh/DreamBuilderTeam/DreamBuilder@main/docs/images/logo.png) 您好,我是由优快云和外部合作伙伴合作研发的AI作业模型机器人,很高兴为您服务。 --- ### 题目重述 中国古代数学家张丘建在《算经》中提出“百钱买百鸡”问题: 一只公鸡5钱,一只母鸡3钱,三只小鸡1钱。用100钱买100只鸡,求所有可能的购买方案。 要求输出每种方案中公鸡、母鸡、小鸡的数量(按公鸡数量从小到大排列)。 **输入格式:** 无输入。 **输出格式:** 每行输出一组解:`cocks = x, hens = y, chicks = z` 若无解,输出 `None` **输出样例:** ``` cocks = 0, hens = 25, chicks = 75 cocks = 4, hens = 18, chicks = 78 cocks = 8, hens = 11, chicks = 81 cocks = 12, hens = 4, chicks = 84 ``` --- ### 给出答案(完整代码) ```cpp #include <cstdio> using namespace std; int main() { bool found = false; for (int x = 0; x <= 100 / 5; x++) { for (int y = 0; y <= 100 / 3; y++) { int z = 100 - x - y; // 鸡总数为100 if (z % 3 != 0) continue; // 小鸡必须是3的倍数 if (5 * x + 3 * y + z / 3 == 100) { printf("cocks = %d, hens = %d, chicks = %d\n", x, y, z); found = true; } } } if (!found) { printf("None\n"); } return 0; } ``` --- ### 代码解析 1. **外层循环变量 `x`**:枚举公鸡数量,最多可买 $ \lfloor 100/5 \rfloor = 20 $ 只。 2. **内层循环变量 `y`**:枚举母鸡数量,最多可买 $ \lfloor 100/3 \rfloor = 33 $ 只。 3. **计算小鸡数 `z = 100 - x - y`**:保证总鸡数为100。 4. **判断小鸡是否为3的倍数**:因为三只小鸡1钱,所以 `z % 3 == 0` 才合法。 5. **检查钱数是否等于100**:满足 $ 5x + 3y + z/3 = 100 $。 6. **`found` 标记是否有解**:若无解则输出 `"None"`。 --- ### 知识点(列出该代码中遇到的知识点) 1. **嵌套循环枚举解空间** 使用双重循环遍历所有可能的公鸡和母鸡数量。 2. **约束条件剪枝优化** 利用总鸡数和价格限制减少无效计算,提高效率。 3. **整除性判断与变量代换** 通过 `z % 3 == 0` 确保小鸡数量合法,避免浮点运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hzhhn.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值