CCF历年编程题解决方案
CCF历年真题解析 CCF(China Collegiate Computing)是一项全国性的大学生计算机编程竞赛,旨在提高大学生编程能力和创新能力。以下是对CCF历年真题的解析: 一、统计最大值、中位数和最小值 在这个题目中,要求统计出给定数组中的最大值、中位数和最小值,并按照从大到小的顺序输出这三个数。该问题考察了数组处理和数据统计的能力。 解决思路: 1. 首先,使用`scanf`函数读取数组的大小`n`和数组元素。 2. 然后,使用`for`循环遍历数组,并统计出最大值、最小值和中位数。 3. 对于中位数的计算,需要考虑数组的长度是否为奇数或偶数。如果为奇数,可以直接取中间元素作为中位数;如果为偶数,需要计算中间两个元素的平均值作为中位数。 4. 最后,使用`printf`函数输出最大值、中位数和最小值。 代码实现: ```c #include<stdio.h> #define Number 100000 int a[Number]; int main() { int n; int Max, Min, Median; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } a[0] > a[n - 1] ? (Max = a[0], Min = a[n - 1]) : (Min = a[0], Max = a[n - 1]); if ((n % 2) == 1) { Median = a[n / 2]; printf("%d %d %d\n", Max, Median, Min); } else { if (((a[n / 2 - 1] + a[n / 2]) % 2) != 0) { printf("%d %.1f %d", Max, (double)((a[n / 2 - 1] + a[n / 2]) / 2.0), Min); } else { Median = (a[n / 2 - 1] + a[n / 2]) / 2; printf("%d %d %d\n", Max, Median, Min); } } return 0; } ``` 二、二十四点游戏 在这个题目中,要求编写程序验证每个游戏的结果是否为24。该问题考察了算法设计和编程实现的能力。 解决思路: 1. 首先,定义每个游戏由4个从1-9的数字和3个四则运算符组成。 2. 然后,编写函数`judge`来判定游戏的结果是否为24。 3. 在函数`judge`中,首先将输入字符串拆分成数字和运算符,然后使用四则运算符的优先级来计算游戏的结果。 4. 最后,使用`printf`函数输出游戏的结果是否为24。 代码实现: ```c #include<stdio.h> int judge(char s[]) { int a[4], i, j; char op[3]; /*从输入取出数和运算符*/ for (i = 0; i < 4; i++) a[i] = s[i * 2] - '0'; for (i = 0; i < 3; i++) op[i] = s[i * 2 + 1]; int k = 3; /*总共计算3次*/ /*先计算乘(x)和除(/)*/ for (i = 0; i < k; i++) if (op[i] == 'x' || op[i] == '/') { if (op[i] == 'x') a[i] = a[i] * a[i + 1]; else a[i] = a[i] / a[i + 1]; } /*然后计算加法和减法*/ for (i = 0; i < k; i++) if (op[i] == '+' || op[i] == '-') { if (op[i] == '+') a[i] = a[i] + a[i + 1]; else a[i] = a[i] - a[i + 1]; } return a[0] == 24; } ``` 本文对CCF历年真题进行了详细解析,包括统计最大值、中位数和最小值、二十四点游戏等问题。这些问题考察了数组处理、数据统计、算法设计和编程实现的能力。
![](https://csdnimg.cn/release/download_crawler_static/11825457/bg5.jpg)
剩余21页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/73e89e581e764f49ab2c9c6699c52698_wj7068.jpg!1)
- 粉丝: 4
- 资源: 10
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)