
C语言
文章平均质量分 51
Linmed
这个作者很懒,什么都没留下…
展开
-
【C】二进制中1的个数
写一个参数返回二进制中1的个数:例如:7 0000 0111 返回:3涉及到二进制就要想到有关二进制的运算,目前能想到的是与,或,非,左移,右移。题目要求求出1的个数,那么在函数内每次得到二进制的一个1后就要想办法去掉这个1,直到这个二进制的值变为0停止。与运算:俩个数相与,只有相同字节位都为1时结果才为1,有一个是0结果就是0。貌似符合题目要求,只要每次得到一个1就让它与0相与。与运算...原创 2018-09-07 15:49:26 · 193 阅读 · 0 评论 -
【数据结构】排序算法
排序算法是数据结构的基本算法,也是面试时面试官最喜欢提问的算法。学习排序,不仅要知道它的基本思路,还要了解它的复杂度以及稳定性。同时对于排序代码也要做到信手捏来。否则在面试时会非常尬....排序分为以下几类:插入排序,选择排序,堆排序,快速排序,冒泡排序,归并排序。其中插入排序又可分为俩类:直接插入排序和希尔(shell)排序。1.插入排序:1.1直接插入排序。 思路:在一个数...原创 2018-09-07 15:22:04 · 166 阅读 · 0 评论 -
数据结构——时间复杂度与空间复杂度
我们通常用时间复杂度和空间复杂度来衡量一个算法的复杂度,统称为算法的复杂度。时间复杂度时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。算法分析的分类算法存在最好,平均,最坏情况:1.最坏情况:任意输入规模最大运行次数(上界)。2.平均情况:任意输入规模的期望运行次数。3.最好情况:任意输入规模的最小运行次数,通常最好情况不会出现(下界)。例如:在...原创 2018-03-28 00:27:58 · 2235 阅读 · 0 评论 -
指针数组,数组指针,指针函数,函数指针数组,指向函数指针数组的指针
数组指针定义:int (* p)[10]p先和*结合,所以p首先是一个指针变量,它指向一个大小为n个整形数组。所以arr是一个指针,指向一个数组,所以叫做数组指针。存储数组的地址: int arr[10] = {0}; int (*p)[10] = &arr;二维数组指针:{int a[3][5];int (*p)[5]=a;}a是个二维数组的数组名,相当于一个二级指针常量;p是一个指...原创 2018-02-24 16:54:23 · 212 阅读 · 0 评论 -
模拟实现strcpy,strcat,strstr,strchr,memxpy,memmove
#include<stdio.h>#include<assert.h>#include<windows.h>char* mystrcpy(char* dest,const char* src){ char* ret = dest; assert(dest != NULL); assert(src != NULL); while(...原创 2018-02-09 17:25:16 · 159 阅读 · 0 评论 -
9*9乘法口诀表,俩个数最大值,十个数最大值,输出1到100素数
#include<stdio.h>#include<math.h>#include<windows.h>int main(){ int i = 0; int j = 0; int k = 0; int m = 0; int n = 0; int a = 45; int b = 50; int v = 0; int max = 0; int arr[10] = {...原创 2018-02-09 17:09:35 · 257 阅读 · 0 评论 -
求俩个整数的最大公约数,最小公倍数,俩个整数交换
1.求最大公约数Ⅰ.辗转相除法①记a%b=c;②若c=0,那么b为最小公倍数,结束;③若c!=0,那么a=b,b=c,然后重复第一步开始。Ⅱ.相减法①若a>b,则a=a-b;②若a<b,则b=b-a;③若a=b,则a或者b为最大公约数,结束④若a!=b,则执行①开始。Ⅲ.穷举法①记c为a,b中较小的那个数;②若a,b同时可以被c整除,那么c为最大公约数,结束。③c--,再回去执行②。2...原创 2018-02-09 16:22:59 · 250 阅读 · 0 评论 -
C语言第一章,常量,变量
一·注释1.// : 行注释,C++风格注释2./* */ : 可注释对行,不支持嵌套注释,C风格注释二·主函数是程序入口三·字符串1.字符串:由“ ”包含2.字符:由‘ ’包含3.字符串最后隐藏一个字符‘\0’,是字符串结束标志,不算做字符内容,不计入长度。四·转义字符 最后俩行:\ddd:1到3个八进制数字\xddd:3个十六进制数字原创 2018-01-26 16:35:03 · 194 阅读 · 0 评论 -
c语言----栈帧
栈帧 每一次函数调用都有一个过程,称为“函数调用过程”,这个过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存,现场保护。这个栈空间称为函数的调用过程。 Ⅰ.寄存器 基址寄存器(栈底寄存器):EBP 栈顶寄存器:ESP 通用寄存器:EAX,EDX,EBX,ECX.Ⅱ.汇编指令: call:功能:1.将当前正在执行指令的下一条指令的地址压人栈中;原创 2017-12-12 17:08:00 · 423 阅读 · 0 评论 -
.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)C语言
#includeint binary_search(int arr[], int k, int left, int right){ while(left { int mid=left+(right-left)/2; if(arr[mid]==k) return mid; if(arr[mid] left=mid+1;原创 2017-11-20 18:48:38 · 649 阅读 · 0 评论 -
猜数字游戏 C语言
完成猜数字游戏,生成一个随机数,然后从键盘输入一个数,猜对了程序结束,猜大或猜小程序继续运行。#include#include#include int main() { int num = 0; int n = 0; int i = 0; srand((unsigned)time(NULL)); num = ran原创 2017-11-20 18:43:53 · 297 阅读 · 0 评论