《C语言及程序设计》实践参考——大奖赛计分

2024-03-03 08:08

本文主要是介绍《C语言及程序设计》实践参考——大奖赛计分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

返回:贺老师课程教学链接  项目要求


【项目4:大奖赛计分】 

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

#include <stdio.h>
#define n 10
int main( )
{int i=1;double ave, score, sum, max, min;  //这几个变量涉及成绩,double是合理的max=-1;  //这儿有技巧,第1位评委给的成绩一定大于-1,max将变成第1个成绩min=11;  //同样和技巧,要学会这样“设圈套”sum=0;   //注意:这4个变量在循环内赋初值是必须的,这意味着计算某一选手成绩的开始printf("请输入选手的成绩(0-10)\n");do  //至少有一位评委,再用do循环{printf("第 %d 位评委给分:", i);scanf("%lf", &score);sum+=score;if(max<score)max=score;  // 联想上一层循环中max的初值,学会技巧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);printf("******************* SUCCESS ***********************\n");return 0;
}


2)上面的程序只能处理一位选手的成绩,现拓展为多人版。输出当前选手的最后得分后,提示“按任意键计算下一位选手的成绩,退出请选择N:”如果输入的不是Nn,可以为下一位选手计算成绩。

#include <stdio.h>
#define n 10
int main( )
{int i;double ave, score, sum, max, min;  char choice;  //用于接受用户选择,字符型是合适的do     //计算选手的成绩,至少1次,用do很自然,别的循环不用想{i=1;    //i代表评委的编号,其实这个变量名起得不好max=-1;  min=11;  sum=0;   printf("请输入选手的成绩(0-10)\n");do  {printf("第 %d 位评委给分:", i);scanf("%lf", &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);printf("******************* SUCCESS ***********************\n");printf("按 N 退出,其他键继续....");fflush(stdin);   //将输入缓冲清空,否则getchar()会读入之前录入中的回车等符号choice=getchar();}while(choice!='N' && choice!='n'); //不管输入大小写,全算数return 0;
}



这篇关于《C语言及程序设计》实践参考——大奖赛计分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/769008

相关文章

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带