`

D语言版趣味程序:4.歌星大奖赛

阅读更多

D语言版趣味程序:4.歌星大奖赛

(说明:原文见http://www.kuqin.com/tiku/c100/,是C语言版。本人改写成D-tango版。与各位D初学者共勉。)

 

问题

在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分
为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。


问题分析与算法设计
这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。

import tango.io.Stdout,tango.io.Console,tango.util.Convert;
import tango.stdc.stdlib;
int main()
{
    double scores;
    double  max=-32768.0; /*先假设当前的最大值max为d语言整型数的最小值*/
    double min=32767.0; /*先假设当前的最小值min为d语言整型数的最大值*/
    double sum=0.0; /*将求累加和变量的初值置为0*/

        for(int i=1;i<11;i++)
        {
        Stdout.formatln("请输入第{} 个评委的分数",i);
        scores = to!(double) (Cin.get()); /*输入评委的评分*/
        sum+=scores; /*计算总分*/
        if(scores>max) max=scores; /*通过比较筛选出其中的最高分*/
        if(scores<min) min=scores; /*通过比较筛选出其中的最低分*/
        }

    Stdout.formatln("计算最大分数是:{} \n 最小分数是:{} ",max,min);
    Stdout.formatln("最后得分(平均分)是:{}",(sum-max-min)/8); /*输出结果*/

    system("pause");//程序执行后显示“按任意键继续”,以便观察

    return 0;
}

 

扩展题
题目条件不变,但考虑同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)和最不公平(即与平均分的差距最大)的评委,程序应该怎样实现?

分享到:
评论
2 楼 d2008 2009-04-09  
下载来了,玩了一下,虽然算不上什么“杰作”,
但能共享出来,也算是值得“赞颂”的。

其实,现在D正处于初级发展阶段,而且各个库和IDE也都不够完善,
大家要是都像楼主那样写出小序程(或一片小代码),并共享出来,娱乐也好,研讨也罢,都算是对D的一大支持了~~
1 楼 d2008 2009-04-09  

相关推荐

Global site tag (gtag.js) - Google Analytics