- 博客(16)
- 收藏
- 关注
原创 三子棋小游戏--C语言
三子棋小游戏一:游戏设计理念 用C语言知识,设计一个3*3的二维数组当作棋盘二:构建游戏架构1.先从主函数开始,设计菜单,可以让玩者快速明白游戏怎么玩----需menu()函数 2.最主要的部分就是游戏怎么玩---需game()函数, 3.在玩游戏之前首先要初始化棋盘,打印棋盘----需Init_board()/Print_board()函数
2017-09-07 16:24:29 829
原创 排序算法---之交换排序(冒泡排序&快速排序-左右指针法,挖坑法,前后指针法)
排序算法----交换排序(冒泡排序&快速排序)一、排序算法分为: 1.插入排序(直接插入排序&希尔排序) 2.选择排序(直接选择排序&堆排序) 3.交换排序(冒泡排序&快速排序) 4.归并排序----快速排序总共有三种方法:(1).左右指针法(2).挖坑法(3).前后指针法二、几种排序的性能比较
2017-08-31 14:59:46 1150
原创 C++知识点总结(上):指针和引用,static关键字,const关键字,malloc\free和new\delete的区别等
C++问题总结(上)1.函数传指针和引用的区别? (1).引用定义必须初始化,指针可以不用 (2).指针可以和多个实体结合,引用只能和一个实体结合?? (3).没有空引用,但是有控制指针 (4).有多级指针,但是没有多级引用 (5).引用比指针用起来更安全,不用判空 (6).sizeof求值意义不相同。--sizeof(指针)是指针所占的字节数,
2017-08-31 14:48:45 540
原创 排序算法-之选择排序(直接选择排序,堆排序)
排序算法-之选择排序(直接选择排序,堆排序) 一、排序算法分为: 1.插入排序(直接插入排序&希尔排序) 2.选择排序(直接选择排序&堆排序) 3.交换排序(冒泡排序&快速排序) 4.归并排序二,选择排序----直接选择排序 1.算法代码//选择排序//直接选择排序void Sele
2017-08-03 15:24:50 1750
原创 排序算法---之插入排序(直接插入排序&希尔排序)
排序算法--之插入排序一、排序算法分为: 1.插入排序(直接插入排序&希尔排序) 2.交换排序(冒泡排序&快速排序) 3.选择排序(直接选择排序&堆排序) 4.归并排序二、下面这张图对排序算法的时间复杂度&空间复杂度&稳定性做了一个总结:二(1)、插入排序-----直接插入排序1.算法代码(升序)//直接插入排序void
2017-07-20 14:28:41 511
原创 线程
线程1、线程的概念: 有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和
2017-06-11 10:03:24 765
原创 C++ 计算时间复杂度--斐波那契 --二分查找
时间复杂度&空间复杂度时间复杂度:算法的时间复杂度是一个函数(数学里的函数—计算运算次数),描述算 法的运行时间,用O表示(—一般关注算法的最坏的运行时间) 延伸:递归算法的时间复杂度—递归总次数*每次递归次数 二叉树的时间复杂度—O(log2n)==O(lgN)—折半查找空间复
2017-05-26 12:46:39 971
原创 C++ 虚表(探索多态的原理)和菱形继承
虚表(探索多态原理)和菱形继承菱形继承(多继承): 两个子类继承同一个父类,而又有子类 同时继承这两个子类。菱形继承关系模型如下图: 菱形继承的代码如下:DD的对象中有两个AA成员#include#includeusing namespace std;class AA{ public: int _aa;};class BB:public AA{
2017-02-16 00:38:09 681
原创 C语言,模拟实现strcpy、strlen函数
模拟实现strcpy、strlen函数 1、模拟实现strcpy 方法一:#include#includeint main(){ char arr1[10] = {0}; char arr2[] = "abcdef"; strcpy(arr1, arr2);//arr1目标,arr1和arr2位置不能改变 printf("%s\n",arr1); return 0;
2016-10-16 16:05:55 1122
原创 C语言 求两个数的最大公约数 (算法)--辗转相减法、辗转相除法
辗转相减法、辗转相除法 --------求两个数的最大公约数思路1:用辗转相减法#includeint main(){ int a = 0; int b = 0; printf("please Enter 2 datas:"); scan
2016-09-28 17:34:26 11196
原创 C语言 找数字,用(折半查找法或二分查找法)
找数字,用(折半查找法或二分查找法)注意:基于 有序数组int main(){int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };int key = 1;int left = 0;int right = sizeof(arr)/sizeof(arr[0])-1;//下标while (left <= right ){int mid =left
2016-09-25 14:53:01 6686 2
原创 C语言 编写代码实现,模拟用户登录场景 ( for循环,if语句的使用)
编写代码实现,模拟用户登录情景,并且只能登录三次。 (只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错#include#include#includeint main(){int i = 0;char password[10] = { 0 };for (i = 0; i < 3; i++){printf("请输入密码:>");sc
2016-09-24 23:23:03 3297
原创 C语言 求一元二次方程的解 语句
求一元二次方程的解本题是if语句的灵活使用,具体有4步:(1)a=0,不是一元二次方程。(2)b*b-4*a*c=0,有两个相同的实根。(3)b*b-4*a*c>0.有两个不等实根。(4)b*b-4*a*c#include#include#define EXP 0.00001int main(){ double a = 0.0,b = 0.0,c = 0.0;
2016-09-22 23:40:42 1925
原创 C实现 一个函数返回参数二进制中1的个数(面试题)
写一个函数返回参数二进制中1的个数总共有三种方法,逐步优化。。。方法1、#includeint main(){int num = 11;int count_one_bits(int num); int count = 0; while(num) { if(num%2 == 1) count++; num = num/2;
2016-09-21 14:14:50 536
原创 C语言---交换两个数的内容(谷歌面试题)
交换两个数的内容1、给定两个整型变量,将两个值的内容进行交换#include #include int main(){ int a = 3; int b = 4; int c = 0; c = a; a = b; b = c; printf("a=%d\nb=%d\n",a,b); system("pause"); return 0;}2、不允许创建临
2016-09-19 12:13:50 444
原创 既然选择了,就要坚持下去
One Day 我是Monster,在西安工业大学学习了两年非计算机专业的知识(光电信息工专业),我真正决定学习C\C++,是在我大二学期末,当时确实也犹豫了很久,决定学习这个,就意味已经我要放弃我学习了两年的专业,最终我还是选择了学习编程,所以,既然是自己选择的路,就一定要走下去。 学习编程就要每天练习写代码,不能只做老师布置的作业,想
2016-09-18 09:15:27 936
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人