关闭
当前搜索:

[置顶] 简易游戏----贪吃蛇

设计思路: 界面设置:采用system()函数来调整界面的大小,背景颜色 绘制地图:采用库函数获取坐标(下面具体介绍) 蛇的设计:采用链式结构实现蛇 食物设计:rand()随机产生食物坐标 蛇的移动:蛇移动实现采用链表相关操作,下面具体介绍 方向控制:采用GetAsyncKeyState()函数,通过键盘操作蛇移动的方向 蛇移动速度:采用Sleep()函数控制...
阅读(117) 评论(1)

[置顶] 注释转换

功能思想: 1)注释分为两种:c 语言注释和 c++ 注释 2)文本状态分为四种: 普通状态(即NULLSTATUS) C++状态(即CPPSTATUS) C 状态(即CSTATUS) EOF状态(即EOFSTATUS) 3)四种状态关系图具体实现: 普通状态 —– C 状态(或C++ 状态) /* int i = 0; *...
阅读(108) 评论(1)

[置顶] 通讯录--文件存储

功能要求 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联系人 实现思想 采用多文件实现功能,避免程序混乱 利用转移表(函数指针数组)减少代码量 采用动态内存,节省了内存空间 使用结构体保存通讯录信息 使用I/O流的概念,并使用IO函数,完成通讯录的文件存储 具体代码:contact.h#ifndef...
阅读(112) 评论(0)

[置顶] 使用qsort函数排序各类型数据

接前面模拟实现的 qsort 函数,我们知道qsort是通过回调函数来实现其功能,故而我们通过回调函数可以排序各种类型的数据代码#include #include #include #include int cmp(const void *x,const void *y) //整型 { retu...
阅读(114) 评论(0)

[置顶] 小游戏--三子棋(任意几子棋)

程序思想 1. 多文件实现游戏功能 2. 改变宏定义即可改变棋盘大小以及棋子个数 3. test.c:功能的测试以及函数的调用 4. game.h : 包含头文件的引用,函数的声明 5. game.c : 各函数的功能的实现。 具体实现 1. 棋牌的设置以及棋盘的显示 2. 玩家和电脑各自落子的实现 3. 输赢的判定代码:test.c#define _CRT_SECURE_NO_...
阅读(54) 评论(0)

[置顶] 斐波那契数列算法——递归与非递归

斐波那契数列: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: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...
阅读(101) 评论(0)

[置顶] 浅析可变参数列表及实例分析

实例分析之前先补充几个知识点 1.可变参数 C语言函数中,一些函数参数部分的个数是可变的,我们称之为可变参数,其函数称为可变函数;例如printf()函数,它的定义是这样的: int printf( const char *format [, argument]… ); 除了有一个参数format是固定的,后面跟着的参数个数和类型是可变的,例如: printf(“%d”...
阅读(88) 评论(0)

[置顶] 浅析函数栈帧、变量的创建与销毁

函数调用过程 每一个函数调用都有一个过程,在此期间,为函数开辟栈空间、用于本次函数调用临时变量的保存、现场保护。 函数栈帧 函数调用过程中为函数开辟的栈空间称为函数栈帧。 通过一个例子来分析函数栈帧:#includeint Add(int x, int y) { int z = 0; z = x + y; return z; }int main(...
阅读(124) 评论(0)

[置顶] http协议中的1XX,2XX,3XX,4XX,5XX

转自:http://m.blog.csdn.net/blog/u013857407/21741847 HTTP协议状态码,是指在HTTP协议运作中由客户端发出请求连接,服务端建立连接,客户端发出HTTP请求,服务端返回响应信息,而在这个过程张由于客户端或服务端的问题会返回相应的错误代码并显示给用户,对应的错误代码表示不同的错误信息,根据这个信息用户可以调整相应的操作来修改出现的错误,最终避免错误...
阅读(200) 评论(0)

[置顶] c语言小游戏---扫雷

程序思想: 多文件实现扫雷基本功能: 1)test.c : 功能的测试,函数的调用; 2)game.h : 包含头文件的引用,函数的声明; 3)game.c : 各函数的功能的实现。 功能的具体思想: 1. 雷盘的初始化:注意实际雷盘的大小与展示雷盘的大小; 2. 雷盘的打印 :注意展示雷盘的大小; 3. 布置雷盘 :随机分布雷时,注意 srand 的使用;...
阅读(112) 评论(0)

[置顶] 求平均数的几种方法

平均数:给定两个数a和b,求其平均值; 分析:数学运算中一贯的算法是(a+b)/2,但在c语言中这种算法存在着一定的缺陷,当a和b足够大时,a和b的和就会存在溢出,从而得不到我们想要的结果。c语言中有相应的操作符可达到求平均数的效果,例如:>>(右移),&按为与,^(按位异或)。 1、存在缺陷的算法(a+b)/2   例: int main() { int a=4,b=2; int r...
阅读(261) 评论(0)

[置顶] c语言关键字(中)

1、最冤枉的关键字---sizeof      经常被人认为是函数,但sizeof是关键字而不是函数;当我们不记得它是关键字时,可以通过以下几个例子来证明:      int   i=0; A)sizeof(int);   B)sizeof(i);   C)sizeof i;     D)sizeof   int;    通过编译器调试,我们发现A、B和C的值是4,而D则显示错误;int表...
阅读(2590) 评论(0)

linux下的简单配置----vim配置,中文输入法配置,gdb安装

1. vim的简单配置 步骤:打开Linux终端—>输入 vim .vimrc 命令—>会打开一个编辑器,在里面添加如下内容: " 自动语法高亮 " syntax on " 检测文件类型 " filetype on " 检测文件类型插件 " filetype plugin on " 不设定在插入状态无法用退格键和 Delete 键删除回车......
阅读(22) 评论(0)

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个

问题描述: 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 思路一: 手动分析:采用排除法,分别假设ABCD四人中有一人说谎,推测A...
阅读(29) 评论(0)

5位运动员参加了10米台跳水比赛,结果预测

问题描述: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 思路: 根据题目,我们可先自行推算出比赛结果: 对A选手...
阅读(21) 评论(0)

两个数中有几个比特位不同

问题描述: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7 分析: 求比特位的运算,自然想到三个操作符,&(按位与)|(按位或)^(按位异或) 三个操作符特点:(具体特点以及应用点链接http://blog.csdn.net/zhangye3017/article/details/7823...
阅读(35) 评论(0)

输出整数的每一位

问题描述: 正序输出整数的每一位;例如:输入1234,输出1234 思路: 方法一:递归实现 利用递归的特点,当递归到整数的最高位时,输出并开始返回 方法二:利用数组保存 将整数的每一位以字符形式保存到数组当中,并将其输出 代码: //递归实现 void PrintR(int n) { if(n9)...
阅读(23) 评论(0)

水仙花数

问题描述: 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。 在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 例如:153...
阅读(26) 评论(0)

剑指offer---19(正则表达式匹配)

问题描述: 请实现一个函数用来匹配包含 ‘.’ 和 ’ * ‘的正则表达式。模式中的字符 ’ .’ 表示任意一个字符,而 ’ * ’ 表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a和”ab*ac*a”匹配,但与”aa.a”及”ab*a”均不匹配。 思路: 求匹配的表达式,首先就要分清楚什么情况是匹配的,什...
阅读(23) 评论(0)

源代码生成可执行程序过程

问:经常敲代码,代码是如何生成可执行程序的? 答:过程分为两个大的过程:翻译和链接;翻译分为编译和链接;编译又分为预编译,编译,汇编三个过程(具体过程看下图) 程序编码: gcc test.c -o test 1)第一步:预处理器扩展源代码—–展开头文件(#include命令包含文件),#define定义标识符的替换,去除注释 2)第二步:编译器产生两个源文件的汇编代...
阅读(34) 评论(0)

剑指offer---17(打印1到最大n位数)

问题描述: 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 思路1: (1)此题可归为大数处理问题:n可能很大,打印最大的n位数就存在溢出现象 (2)解决方法:采用高精度算法;使用一个数组arr来表示所要打印的数,将其以字符串的形式存储,并模拟数字加法 (3)加法进位:分析进位时,发现只有9、99、999、...
阅读(31) 评论(0)

剑指offer---16(数值的整数次方)

问题描述: 实现一个函数double Power(double base,int exponent),求base 的 exponent次方。不得使用库函数,同时不需要考虑大数问题 思路: 数值的整数次方,我们可以从以下几个方面考虑: 1)base的取值:非0还是0,如果非0,则进行计算,如果是0,需进行特殊处理 2)exponent的取值:正数还是负数,还是0...
阅读(29) 评论(0)

剑指offer----015(剪绳子)

问题描述: 给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m≥1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]* k[1]*……*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此 时得到最大的乘积18。 算法1:动态规划 采用递归思想,将其划分为子问题,设绳长为>n,剪绳子最大乘积函数为f(n)当剪第一...
阅读(23) 评论(0)

剑指offer----015(二进制中1的个数)

问题描述: 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如:把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2 思路1: 求二进制1的个数,首先想到操作符&(按位与),&规则:0&1=1 1&1=1 采用&的规则,对应的二进制位&1,并统计1的个数 例:求9的二进制有几个1 9 & 1 (由于二进制序列前面都是0,故只写低...
阅读(41) 评论(0)

几种算法-----n的阶乘

问题描述: 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。 算法 1 —–递归long long Factorial(long long n) { if(n==1) return 1; return Factorial(n-1)*n; }void Test1() { printf("%lld\n",Factorial(1));...
阅读(33) 评论(0)

剑指offer---012(字符串在矩阵中的路径)

问题描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划线标出)。但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第...
阅读(35) 评论(0)

剑指offer----013(机器人运动的范围)

问题描述: 地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38),因为3+5+3+8=19。请问该机器人能够到达多少个格子? 问题分析: 所走格子的范围条件:...
阅读(38) 评论(0)

剑指offer---011(旋转数组中的最小数字)

问题描述: 把一个数组最开始的若干元素搬到数组的末尾,我们称之为数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}为{1, 2, 3 ,4 , 5,}的一个旋转数组,该数组的最小值为1 分析问题: 根据描述,可以看到旋转数组有几个特点: 1) 未旋转之前的数组是一个有序数组 2) 旋转之后的数组可将其有序数组分成两部分:以最小值为界,左半部分为有序数组,右...
阅读(19) 评论(0)

剑指offer---010(斐波那契数列)

问题描述: 写入一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下: 思路: 三种算法:递归,非递归,矩阵 时间复杂度:递归O(2^n),非递归O(n),矩阵O(logn) 算法比较:递归算法效率低,重复计算,容易溢出;非递归算法避免重复计算,比较实用;矩阵算法效率高,但包含生僻的数学算法,不实用 递归算法: long long Fib...
阅读(45) 评论(0)

剑指offer----005(字符串空格替换)

问题描述: 实现一个函数,将字符串中的每个空格替换成%20。例如:”We are hanppy.“,则输出“We%20are%20happy.”,要求时间复杂度为O(n) 问题分析: 根据描述,此题意思改变字符串内容,并且改变了原字符串长度; 要求时间复杂度为0(n),故不能直接替换; 思路: 第一步,求空格数:要知道改变字符串后的长度,需知道原字符串中...
阅读(35) 评论(0)

剑指offer------003(二维数组中查找整数)

问题描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 分析问题: 从问题描述中,可以确定一下几点: 1)在二维数组中查找整数,根据学过的知识可知,二维数组可看做一维数组,故此题可在一维数组中求解 2)此数组的特点是从左到右递增排序,从上到下递增排序;故有几...
阅读(43) 评论(0)
62条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:6539次
    • 积分:699
    • 等级:
    • 排名:千里之外
    • 原创:58篇
    • 转载:4篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论