C程序
EthanBill
这个作者很懒,什么都没留下…
展开
-
模拟实现内存函数
memcpy拷贝一块连续的内存空间(num个字节)void* my_memcpy(void* dest, const char* src, size_t num) { assert(dest != NULL); assert(src != NULL); assert(num != 0); char* cdest = (char*)dest; const char* csrc = (const char*)src; for (size_t i = 0; i < num; i++) {原创 2021-07-29 18:12:38 · 74 阅读 · 0 评论 -
模拟实现字符串函数
strlen返回字符串长度,不包含 ‘\0’size_t my_strlen(const char* str) { // 校验参数的合法性 //if (str == NULL) { // // 操作 //} // 还有一种方法是 assert"断言" assert(str != NULL);// 条件成立,无事发生,否则程序崩溃 size_t size = 0; while (str[size] != '\0') { size++; } return size;}s原创 2021-07-29 15:48:12 · 98 阅读 · 0 评论 -
C语言·斐波那契数列
斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 196原创 2021-07-22 18:54:48 · 450 阅读 · 0 评论 -
C语言·二分查找
二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。依照上述逻辑,我们可以原创 2021-07-22 08:56:00 · 86 阅读 · 0 评论 -
C语言·判断闰年
什么是闰年?世纪闰年世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。普通闰年普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。依照上述闰年的概念,我们可以写出这样的代码:#include<stdio.h>int IsLeapYear(int year) { // 世纪闰年 if (year % 100 == 0) { if (year % 400原创 2021-07-22 08:18:22 · 540 阅读 · 0 评论 -
冒泡排序
文章目录升序排序降序排序核心思路:比较两个相邻元素的大小,然后按照排序要求交换位置升序排序从前往后遍历,每次取到一个最大的元素放到数组最后从后往前遍历,每次取出一个最小的元素放到数组最前面#include<stdio.h>void bubbleSort(int arr[], int size) { // 从后往前遍历 // bound=>边界,表示已排序区间和待排序区间的分界线 // [0,bount) 已排序区间 // [bound,size) 待排序区间 int原创 2021-05-04 11:54:01 · 796 阅读 · 1 评论 -
C语言实现扫雷
文章目录游戏规则设计思路源码实现用C语言实现 简易版扫雷(Mine Sweeper)游戏规则在一个9*9的地图上会随机出现10个地雷,我们只需要把除这10个地雷之外的其他位置全部打开即为胜利!打开一个位置如果是不是地雷,则该位置会显示以该位置为中心,周围8个位置的地雷总数;如果打开的位置是地雷,那么游戏直接结束!设计思路用一个 char 类型的二维数组 showMap 来表示扫雷地图,在这张地图上 * 表示没有翻开的状态,‘0’~‘8’ 这些字符数字表示翻开的状态,同时记录以该位置为中心,周围8个原创 2021-05-03 18:00:36 · 136 阅读 · 0 评论 -
C语言实现井字棋
文章目录游戏规则逻辑流程源码实现心得收获也许你曾经在上课无聊时和同桌玩过井字棋(OX棋)这个游戏~这个算是我童年的回忆吧!游戏规则两个玩家轮流在九个空格中画上代表自己的O或X,谁先将自己的符号连成一线(横连、竖连、斜连皆可),即获得胜利。逻辑流程首先得有一个3*3的棋盘呐,我们可以使用 char 类型的二维数组来表示这个棋盘以及每个空格处的三种状态(O、X、空白),接着思考一下实现这个程序的具体逻辑~#mermaid-svg-xk1s2vw6hCh3taHW .label{font-family原创 2021-04-30 21:41:37 · 295 阅读 · 1 评论