• 等级
  • 658 访问
  • 15 原创
  • 0 转发
  • 1142572 排名
  • 0 评论
  • 6 获赞

栈解决------括号匹配问题和逆波兰表达式

所需知识 栈 字符串 一.括号匹配问题 ❀思路分析 有如下四组字符串 如何检测左右括号顺序与个数是否匹配 ---------- char a[] = "(())abc{[(])}"; char b[] = "(()))abc{[]}"; char c[] = "(()()abc{[]}";

2018-08-20 16:09:16

迷宫问题(二)------复杂迷宫

所需知识 结构体 递归 ❀思路分析 1.跟上篇比较区别在于,多通路,同出口,同入口,如何在已经找到了一个出口的情况下,如何返回来找另外一条最短路径,还是用赋值法。 2.探路的顺序是上左右下。 从入口开始,通路的条件为,下一位置值为1或值大于当前位置的值, 赋值依次加1 每次走位置,都调用一次函数,形成递归 向上走为最高优先级,走不通后向右走,然后向下 当...

2018-08-20 16:02:24

迷宫问题(一)------简单迷宫

所需知识 递归 结构体 ❀思路分析 如图为一个简单的迷宫地图 简答理解为,数字1代表通路,数字0代表障碍物。 1.怎样创建迷宫地图的信息 创建一个结构体,内放二维数组来保存迷宫地图的坐标 /建立一个地图 typedef int DataType; //迷宫 typedef struct Map { DataType map[ROW][COL]; }M...

2018-08-19 16:48:38

求第n个斐波那契数(三种方法)的空间复杂度,时间复杂度

所需知识 递归 循环 斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)...

2018-08-17 18:43:37

#ifdef,#else,#endif,#if的作用和意义

预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。    关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说...

2018-08-15 16:14:59

C——指针进阶

一、指针数组 二、数组指针 应用 指针和数组的定义说明 三、函数指针 四、函数指针数组 五、指向函数指针数组的指针 一、指针数组 指针数组是数组,是一个存放指针的数组 例如: int a[10]; 存放了10个整形变量的数组 char a[10]; 存放了10个字符变量的数组 int * p 为一个存放整形常量 地址的指针变量 类比理解 int * a[...

2018-05-14 18:14:34

字符串-------库函数的实现

2018-05-08 23:35:42

C————初接触的“递归思想”栗子

1.递归 函数内部自己调用自己 2.斐波那契数说明 1 1 2 3 5 8 13 21 34 55 从第三个数字开始,每一个数字都等于前两位的和 /*1.递归和非递归分别实现求第n个斐波那契数。*/ //递归方法 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int di_gui(int n) { if (n...

2018-05-02 23:03:17

让字符串左右旋的函数

/*1.实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB */ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> char * zuo_xuan( char * dest ,int n) { char *top = dest; char *end = de...

2018-05-02 19:41:21

一个友好的扫雷程序———————C初学者都能学会的简单扫雷(二)

一、优化内容的理解 在前篇的基础上做一下两点扩展和一些细节优化 1.第一次点击,不炸死(如果哪个倒霉蛋第一下就点到了雷,我得让电脑偷偷把这个雷挪走) 2.如果坐标周围没雷,可以实现展开。展开的意思: 上篇(一)中讲到,当我面对这样的一个雷阵时 输入一个坐标,该坐标不为雷,我应该通过该坐标展现出的数字知道该坐标周边八个位置的雷个数, (实现过程见函数char geshu(char c[...

2018-04-28 15:33:51

一个友好的扫雷程序————C初学者都能会的简单扫雷(一)

一、思路整理 (一)、两个数组,我们设定两个数组来存放和显示,数组ying[][]用来存放 0和1,其中0代表无雷,1代表有雷。先进行数组初始化,开始时将数组内元素全部赋值为0 数组xian[][]用来存放“*”号,这个数组将是玩家看到的界面. (二)、定义好以后,开始进行埋雷 即用坐标(x,y)x = rand() % (row - 1); y = rand() % (row -...

2018-04-18 12:13:12

可扩展三子棋^五子棋

一、开始的思路 1.从三子棋开始,先不考虑扩展 (1)、 打印棋盘 打印一个棋盘,如何打印呢?先考虑下棋的位置,是三行三列,所以定义一个数组c[3][3],如何让这个棋盘有分割线呢?分别打印,第一行先输出 a[0][0] | a[0][1] | a[0][2] ,第二行输出—|—|—,依次类推(见函数void dayin (int a[ROW][COL], int row,int ...

2018-04-14 18:12:29

C——位运算的巧妙使用

位运算使问题简化 1.编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回 值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 100110000000000000000000...

2018-04-14 11:46:27

C中的函数学习(一)

最简单的代码用函数表示 1. 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9 * 9口诀表,输出12,输出12 * 12的乘法口诀表。 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> void chengfabiao(int a) //打印一个乘法口诀表 { int i = 0, ...

2018-04-14 10:22:39

谁是凶手?!——————今天的C是柯南

用三个简单的推理题打开C语言推理的思路 1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的次序*/ #include<stdio.h> int main(...

2018-04-14 10:13:22

_esther_

千万别脱发呀
关注
  • 中国