第三十八讲项目1——大奖赛计分(续一)

本文介绍了一个简单的评分系统设计,该系统可以去除最高和最低分,计算平均分。文章使用C语言实现,并通过do...while循环确保分数的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

程序代码

#include <stdio.h>
#include <stdlib.h>
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun74.c
*作者:小臣小仁
*完成日期:2016年12月16日
*/
int main()
{
    int judgeNum,singerNum,j,s;
    float max,min,aver,mark,sum;
    printf("请输入评委数:");
    scanf("%d",&judgeNum);
    printf("请输入歌手人数:");
    scanf("%d",&singerNum);
    for(s=1;s<=singerNum;s++)
    {
        j=1;
        sum=0;
        max=0;
        min=10;
        printf("下面计算第%d为歌手的分数:\n",s);
        do
        {
            printf("第%d为评委打分:",j);
            scanf("%f",&mark);
            if(mark<0||mark>10)
            {
                printf("请重新输入%d为评委的正确分数!\n",j);
                continue;
            }
            sum+=mark;
            if(max<mark)
                max=mark;
            if(min>mark)
                min=mark;
                j++;
        }
        while(j<=judgeNum);
        aver=(sum-max-min)/(judgeNum-2);
        printf("去掉一个最高分%.2f,去掉一个最低分%.2f\n",max,min);
        printf("第%d位歌手得分位%.2lf\n",s,aver);
    }
    return 0;
}

输出结果


知识点总结

                这里如果输入评委分数没有在1~10之间用continue来进行返回,如何重新输入,但是这里循环只能用do{}while来实现,其它的for,while来循环是不行的的

心得体会

               能程序还有诸多需要优化的地方,但对应初学者的我,还感觉力不从心抓狂,希望大家谅解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值