课程实践:大奖赛计分
来源:互联网 发布:金山数据恢复安卓版 编辑:程序博客网 时间:2024/05/22 04:51
(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。
要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数调用时,需要将输入的评委人数n作为实参。
(2)进一步完善(1)的程序。输入时,难免有录入错误发生,如果输入的成绩不在0-10之间,要求用户立即重新输入(在函数calScore中修改);一次运行程序只计算一位选手成绩太麻烦,要求输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是N或n,可以为下一位选手计算成绩(在main函数中进行控制即可)。
#include <stdio.h>
float cabscore(float score)//返回值为小数形式,评委打分是小数;
{
if(score>=0&&score<=10)
score=score;
else
{
printf("请重新输入分数");
scanf("%f",&score);
cabscore(score);
}
return score;
}
void calscore(int n)
{
int i=1;
//i为评委编号
float max=-1;
float min=11;
float ave=0,score,sum=0;
printf("请输入选手的成绩(0-10)\n");
do
{
printf("第 %d 位评委给分:", i);
scanf("%f", &score);
cabscore(score);//
sum+=score;
if(max<score)
max=score;
if(min>score)
min=score;
i++;
}
while(i<=n);
//计算最终得分
ave = (sum-max-min)/(n-2);
printf("减去一个最高分: %.3f\n", max);
printf(", 减去一个最低分: %.3f\n", min);
printf("当前选手的最后得分是:%.3f\n", ave);
}
int main( )
{
int i,n;
double ave, score, sum, max, min;
char choice; //用于接受用户选择,字符型是合适的
printf("请输入评委人数");
scanf("%d",&n);
do //计算选手的成绩,至少1次,用do while可以做到
{
calscore(n);
printf("******************* SUCCESS ***********************\n");
printf("按 N 退出,其他键继续....");
fflush(stdin); //将输入缓冲清空,否则getchar()会读入之前录入中的回车等符号
choice=getchar();
}
while(choice!='N' && choice!='n'); //输入大小写N皆可
return 0;
}
- 课程实践:大奖赛计分
- 寒假实践之—大奖赛计分系统
- 第9周OJ实践 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分。
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 大奖赛计分
- 《C语言及程序设计》实践参考——大奖赛计分
- 提高第9课时,实践2,歌手大奖赛计分系列
- Codeforces Round #389 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 3) F
- 虚拟机下无线网络的连接
- LAMP运行环境
- 【caffe-windows】 caffe-master 之 matlab接口配置
- 左神的书——《程序员代码面试指南》之打印两个有序链表的公共部分 c++实现
- 课程实践:大奖赛计分
- 部分软件在ubuntu14.04下的安装参考
- Fragment中含有WebView,回退按键交给WebView的处理
- MySql 学习笔记
- 个人整理的关于UITableViewCell的常用属性的知识,如有雷同,纯属巧合
- 利用openstack建设适合中小型互联网企业的私有云(五)
- c++与C#的区别
- Download Linux Kernel
- Scala练习