CCF历年编程题解决方案
需积分: 18 9 浏览量
更新于2024-07-16
1
收藏 1021KB DOCX 举报
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历年真题进行了详细解析,包括统计最大值、中位数和最小值、二十四点游戏等问题。这些问题考察了数组处理、数据统计、算法设计和编程实现的能力。
2021-03-26 上传
2024-05-31 上传
2024-10-15 上传
227 浏览量
2020-02-09 上传
2021-10-04 上传
2024-12-01 上传
Cody-Wang
- 粉丝: 4
- 资源: 10
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率