![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习过程记录
可乐yue
愿你熬得过万丈孤独,藏得下星辰大海
展开
-
递归小练习(C语言)
编写一个函数实现n^k,使用递归实现int multi(int n, int k) { if (1 == k) { return n; } return n * multi(n, k - 1);}写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),...原创 2019-05-13 18:09:42 · 138 阅读 · 1 评论 -
关于C指针的理解
一级指针:C语言中,我们最常见的指针的形式就是一级指针了。比如:int *p;这是一个指向整型变量的指针。char *p;这是一个指向字符型数据的指针。从定义上看,不难发现,指针它也是一个变量。所以以后见到指针也不要慌,它就是一个变量。那么指针变量里究竟存储的是什么呢?相信大家也都知道,那就是一个地址。假设有一个变量int a = 520;那么a的地址就是 &a....原创 2019-06-26 17:30:55 · 184 阅读 · 0 评论 -
不用if语句和大于小于操作符比较两个整型数的大小
分析不用if语句和大于小于操作符比较两个整型数的大小?那么我们可以向移位运算和三目操作符的方向想!为什么呢?想一想整型数在计算机中的存储方式,他们是以补码形式存储的。负数的最高位为1,正数的最高位是0。那么我们只用判断两数相减后那个数的最高位就可以了。实现比如说需要比较a与b的大小:**(((a-b)>>31)&1)**这个表达式的值就是相减后的数的补码最高位的数值...原创 2019-06-02 10:48:06 · 2169 阅读 · 0 评论 -
杨氏矩阵查找算法
杨氏矩阵有一个二维数组数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。(当然行列数可以不一样)要求:查找算法时间复杂度小于O(N)杨氏矩阵举例:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 9分析我们可以先和最右上角的数先比较,如果小于右上角的数,则去掉最右面的一列。如果大于最右上角的数...翻译 2019-05-30 17:51:28 · 1266 阅读 · 2 评论 -
数组应用之井字棋(C语言)
一、目的利用数组实现一个简单的井字棋游戏!二、运行环境VS 2013 Ultimate版三、具体步骤这个简单的小程序是利用多文件的方法编写的。1、创建对应的main.c(主函数所在的源文件),TIC-tac-toe.h(头文件),Tic-tac-toe.c(函数的实现文件)(1)TIC-tac-toe.c(2)Tic-tac-toe.h右键单击管理器中的头文件添加新建项,然后如...原创 2019-05-18 21:27:37 · 952 阅读 · 0 评论 -
递归与非递归求第n个斐波那契数(C语言)
斐波那契数列概述:1,1,2,3,5…等规律:开始两个数字为1,之后每一个数字都是其前两个数字的和。既然有规律我们就该用递归尝试一下!递归://递归求第n个斐波那契数int fib(int n) { if (n <= 2) { return 1; } return fib(n - 1) + fib(n - 2);}n:表示第几个斐波那契数递归代码很简短,但你会发...原创 2019-05-13 14:46:49 · 212 阅读 · 0 评论 -
数组应用之扫雷游戏
一、实现的功能(1)棋盘可改变大小(利用宏实现)(2)雷的随机生成,可改变大小(利用宏实现)(3)棋盘可实现展开,展示周围雷的个数(递归实现)(4)第一次踩雷不死,改变雷的位置二、效果截图菜单:游戏过程:成功:失败(小棋盘容易失败):三、代码参考注意点:有两个数组分别代表给玩家展示的棋盘和雷盘(放雷的棋盘)当失败是可以展示雷盘给玩家!棋盘定义时要多定义两行两...原创 2019-05-22 00:24:51 · 892 阅读 · 1 评论 -
getchar()和putchar()函数小试牛刀!
一个小程序:实现:编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。利用getchar()和putchar()实现!#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main() { c...原创 2019-05-01 15:26:25 · 589 阅读 · 0 评论 -
C中字符串比较问题
今天在写一个代码时发现了一个问题,当你要将一个已存在的字符串与你输入的字符串比较相等时原有的字符串末尾是必须带’\0’的否则会出现一直不相等的情况。因为你输入的字符串,C语言会默认在末尾补‘\0’,作为结束标志。如果原有的字符串末尾没有,就会出错!比如这样:这样在进行比较时就会出错!输入的虽然相同但会出错!当加上结束标识就会通过!总结:在标准输入流输入的字符串会在末尾自动‘\0...原创 2019-05-01 15:01:10 · 2924 阅读 · 0 评论 -
递归实现折半查找算法(C语言)
递归实现折半查找折半查找顾明思议,就是一半一半的查找,不过前提必须是一个有序的序列,这里我才用了整型数组。函数必须传入4个参数int binsearch(int a[], int key, int low, int high)a[] :要进行查找的数组key:要进行查找的数值low:最小下标high:最大下标核心思想:当key值小于数组的中间位置的数值时,就在中间向左边的小数组...原创 2019-05-01 14:04:40 · 30897 阅读 · 17 评论 -
对自定义类型(结构体,枚举,联合)的理解
结构体类型其实结构体很好理解,一理解就可以理解。一个结构体存不同或相同的数据类型。一个结构体可以表示一个实体。你可以将想要放入的数据类型放入到一个结构体。有时候,结构体很形象。比如可以利用一个结构体表示一个点。一个点有x,y坐标。那么我们就可以将其封装在一个结构体里。有了结构体类型,那么定义变量就很简单了。定义:struct Point{int x;int y;}p; ...原创 2019-07-05 01:42:31 · 1001 阅读 · 0 评论