
C语言
文章平均质量分 62
aimee_1024
欢欢早睡早起
展开
-
C语言经典算法之汉诺塔递归实现
据说创世纪时Benares有一座波罗教塔,是由三支钻石棒所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘,并命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕之时,此塔将毁损.递归实现:#include void hanoi(int n, char X, char Y, char原创 2017-10-26 13:54:50 · 662 阅读 · 0 评论 -
C语言三子棋实现
头文件#ifndef __GAME__H__ #define __GAME_H__ #include"time.h" #include"stdlib.h" #include"string.h" #include"stdio.h" #define ROWS 3 #define COLS 3 void init_board( char arr[ROWS][COLS], i原创 2017-11-24 15:12:29 · 409 阅读 · 0 评论 -
C语言 大端小端模式 和测试方法
数据在内存中的存储方式有两种,分为大端模式,小端模式。大小端模式对数据进行存储的主要区别是存放的字节顺序。大端模式:高字节存储低地址,低字节存放在高地址。(地址的增长顺序与值的增长顺序相反.)小端模式:高字节存储高地址,低字节存放在低地址。(地址的增长顺序与值的增长顺序相同.) 我们知道,计算机的内存原创 2017-12-19 15:16:50 · 712 阅读 · 0 评论 -
模拟实现C语言库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
C语言库函数实现练习1.模拟实现strcpystrcpy是字符串复制函数,把从src(源字符串指针)地址开始且含有’\0’结束符的字符串复制到以dest(目的字符串指针)开始的地址空间。 注意:在进行复制时是连字符串结束标识符‘\0’一并复制。 只能拷贝字符串。#include<stdio.h> #include<assert.h> char *my_strcpy(原创 2017-12-18 22:46:03 · 332 阅读 · 0 评论 -
模拟实现qsort, qsort对多类型数据进行排序
使用回调函数,模拟实现qsort#include int int_cmp(const void * p1, const void * p2){ return (*( int *)p1 > *(int *) p2);}void _swap(void *p1, void * p2, int size){ int i = 0; for (i = 0; i< siz原创 2018-01-01 16:02:28 · 485 阅读 · 0 评论 -
数据在内存中的存储,原,反,补,内存方式
内存分配是指在程序执行的过程中分配或者回收存储空间的分配内存的方法C语言内存方式分为3种。静态存储区域分配内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。比如全局变量和静态变量。栈上创建在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,优点是效率高,缺点是原创 2017-12-14 16:42:35 · 563 阅读 · 0 评论 -
指针 数组 函数 傻傻分不清楚
在C语言中,数组和指针的关系非常密切,我们可以通过指针来实现数组下标能实现的任何功能,而且指针有时候执行速度更快!!数组指针 int a[10];//这是一个由10个数组元素组成的集合,a[i]表示数组第i个元素。int *p;//指向整型对象的指针p=&a[0];//指针p指向数组a的第0个元素,p的值为数组a[0]的地址。 //如果p指向数组a中的某个元素,p+1就是指向下原创 2017-12-05 16:44:14 · 305 阅读 · 0 评论 -
C语言*扫雷实现
用C语言实现简单扫雷游戏可以检验你对C语言一些基础知识的掌握和运用,比如函数的调用问,二维数组,递归,编程规范问题等等。 这个代码能实现扫雷的: 1.设置棋盘大小和布雷数量 2.计算某个坐标周围雷的个数,在坐标上显示 3.坐标周围都无雷可以展开为了代码的可读性,分别用game.h text.c game.c 三个文件实现。game.h#ifndef __GAME_H__ #defi原创 2017-11-28 18:29:02 · 591 阅读 · 0 评论 -
找100-200以内的质数
质数又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数。#include int main() { int m,n,a,b,c,d; printf("请输入两个数:"); scanf_s("%d %d", &m, &n); a = m;原创 2017-11-04 15:55:30 · 2279 阅读 · 0 评论 -
C语言中常用操作符
算数操作符 + 加 - 减 * 乘 / 除 (当两个操作数都是整数时执行整除运算,其他情况执行浮点数 除法) 上述四个操作符适用数值类型:整数类型,浮点数类型。 % 取模(即取余数) 取模操作符接受两个整型操作数。移位操作符 <<左移位操作符,>>右移位操作符(操作数必须都是整型类型) 移位操作符就是把一个值的位 向左移动 或 向右移动。 将原创 2017-11-18 15:10:25 · 254 阅读 · 0 评论 -
猜数字小game
#include #include #include void menu(){printf("****1.play 0.exit****\n");}void play_game(){int tmp = 0;int rand_n = rand() % 50; while (1){printf("你猜的数字是:");原创 2017-10-26 13:24:17 · 257 阅读 · 0 评论 -
对数组元素进行由大到小排列
#include#define num 20 int main(){ int arr[num]; int i,j,t; for(i=0;i<num;i++) scanf("%d",&arr[i]); printf("\n"); for(j=0;j<num-1;j++) for(i=j+1;i<num;i++) if(arr[j]>arr[i])/原创 2017-11-08 12:04:28 · 2462 阅读 · 0 评论 -
最大公约数最小公倍数
辗转相除法(欧几里得算法)其方法是用较大的数除以较小的数,上面较小的除数和得出的余数构成新的一对数,继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。#include int main(){ int a,b,m,n,i; printf("请输入两个数:\n"); scanf("%d%d",&m,&n);原创 2017-10-28 12:32:05 · 767 阅读 · 0 评论 -
数组和指针的那些事
数组是一个由若干同类型变量组成的集合。数组由连续的存储单元组成,最低地址对应第一个元素,最高地址对应最后一个元素。数组有一维数组和多维数组。在学习数组的时候了解指针很有必要,使用指针变量比使用下标效率更高! 一维数组:数组名问题:int a[10];我们把a称为数组,a是一些同类型值得集合,a[0]表示a数组的第1个元素,a[1]表示第二个元素,a[i]表示第i个元原创 2017-12-29 16:00:17 · 377 阅读 · 0 评论