小程序:冒泡排序与日期计算
需积分: 7 64 浏览量
更新于2024-09-11
收藏 44KB DOC 举报
"小程序包含学习常用的函数,如冒泡排序、闰年判断及天数计算、单词排序和句子单词提取。"
这篇资源介绍了一个小程序,它整合了多种常用的功能,适用于学习和实践编程技巧。以下是这些功能的详细说明:
1. 冒泡排序法:这是一种基础的排序算法,通过不断地比较相邻元素并交换位置,使得较大的元素逐渐“浮”到数组的末尾。在代码中,使用两个嵌套循环来实现这个过程。外层循环控制排序的轮数,内层循环则负责每一轮中的比较和交换。`LEN`代表数组的长度,`sz`是待排序的数组。
```cpp
for(int k = 1; k <= LEN; k++){
for(int i = 0; i < LEN - k; i++){
if(sz[i] > sz[i + 1]){
int e = sz[i + 1];
sz[i + 1] = sz[i];
sz[i] = e;
}
}
}
```
2. 闰年与天数计算(调用函数):这里有两个函数,`isRunNian()`用于判断是否为闰年,`DiJiTian()`用于计算给定日期在当年中的第几天。`isRunNian()`根据闰年的规则,即能被400整除或者能被4整除但不能被100整除的年份是闰年。`DiJiTian()`通过遍历月份累加天数,同时考虑2月的天数,根据闰年与否进行调整。
```cpp
int isRunNian(int year){
int result;
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
result = 1;
}else{
result = 0;
}
return result;
}
int DiJiTian(int year, int month, int day){
int result = 0;
for(int i = 1; i < month; i++){
// ... (略)
}
result += day;
return result;
}
```
3. 单词排序:该功能用于对一个字符串数组按照字典顺序进行排序。使用冒泡排序算法,但这次比较的是字符串而不是数值。`strcmp()`函数用于比较两个字符串,如果第一个字符串大于第二个,则交换它们的位置。
```cpp
for(int k = 1; k <= n; k++){
for(int r = 0; r < n - k; r++){
char word[101];
if(strcmp(danci[r], danci[r + 1]) > 0){
strcpy(word, danci[r]);
strcpy(danci[r], danci[r + 1]);
strcpy(danci[r + 1], word);
}
}
}
```
4. 句子中提取单词:这个功能用于从输入的句子中提取出单词,存储到二维字符数组`danci`中。`gets()`函数用于读取整个句子,然后通过遍历字符串,当遇到空格或结束符时,将单词存入数组。
```cpp
char juzi[NUM * LEN];
char danci[NUM][LEN];
int i, k, index;
gets(juzi);
index = 0;
for(i = 0;; i++){
for(k = 0;;){
// ... (略)
}
}
```
这个小程序为学习者提供了一个集成了多种基础功能的实践平台,有助于理解和掌握基本的算法和数据处理技巧。
2022-11-25 上传
2023-06-17 上传
2024-01-05 上传
天锁
- 粉丝: 0
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析