
C语言
文章平均质量分 53
CDatreides
这个作者很懒,什么都没留下…
展开
-
文件通讯录的实现
在写文件通讯录之前,大家应该对fread和fwrite函数有所了解,这篇博客有对fread和fwrite的介绍,希望大家在看文件通讯录之前了解一下:https://blog.youkuaiyun.com/cdatreides/article/details/80763141#ifndef __CONTACT_H__ #define __CONTACT_H__ #include <std...原创 2018-06-24 12:16:10 · 453 阅读 · 0 评论 -
C语言:有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
//杨氏矩阵有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 6 ...原创 2018-05-06 14:58:41 · 384 阅读 · 0 评论 -
C语言:调整数组使奇数全部都位于偶数前面。
调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。...原创 2018-05-06 14:53:08 · 429 阅读 · 0 评论 -
枚举的用法
刚开始学C,对枚举定义不太清晰,在网上看到这篇文章,希望能帮到大家!枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。枚举类型的定义格式为: enum <枚举类型名> {<枚举表>}; 它是一条枚举类型定义语句,该语...转载 2018-03-28 22:47:38 · 238 阅读 · 2 评论 -
C语言:求两个数的最大公约数(三种方法)
1.常规法2.辗转相减法3.辗转相除法如果大家有什么不懂得地方,点击关注,私信给我,免费为你解答。原创 2018-03-31 12:53:44 · 11358 阅读 · 1 评论 -
C语言:二进制表达的一些习题练习
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数}获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。输出一个整数的每一位。编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?...原创 2018-04-04 19:23:58 · 636 阅读 · 0 评论 -
c语言操作符
1 算数操作符2 逻辑操作符 3 按位操作符 4 赋值运算操作符 5 其他的操作符其他运算符中的三目运算符“condition?exp1:exp2 ”是C语言中唯一的三目运算符可以用if——else语句来描述。 总结:1 左移运算符左移一位相当于乘二,其效率比乘以2的效率高。左移其右边自动补零,右移其左边补符号位。2 这些...原创 2018-04-04 22:38:12 · 260 阅读 · 0 评论 -
C语言操作符(移位)
C语言的移位操作符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。 位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,...转载 2018-04-06 13:39:22 · 459 阅读 · 0 评论 -
三子棋的具体分析(c语言)
在写这个程序之前,我们应该建立一个头文件和两个项目文件(菜单and游戏),然后在头文件中对项目声明。接下里我们就可以编写游戏,三子棋具体步骤如下:1.打印棋盘。2.玩家输入。3.检查输赢。4.电脑输入。5.检查输赢。首先,我们先来编写框架:定义数组,首先对数组初始化:打赢棋盘,我们打印一个3*3的方格:玩家输入:判断输赢:...原创 2018-04-18 18:10:44 · 572 阅读 · 0 评论 -
C语言:写一个函数返回参数二进制中1的个数(两种方法)
1.首先我们都应该知道一个数有32个bits,因此我们可以通过for循环实现语句。2.以上方法虽然能够准确找出二进制数1的个数,但却使计算机进行了好多没必要的循环:比如:100000 1只有一位,却依然进行了32次循环。接下来为大家展示一种更为理想的方法。 ...原创 2018-04-20 16:23:40 · 428 阅读 · 0 评论 -
用C语言编写猜字谜小游戏
原创 2018-04-20 23:01:02 · 2306 阅读 · 0 评论 -
用C语言编写扫雷小游戏(详细介绍)
编写扫雷时,我们应该应该清楚地知道游戏规则:当选择不是雷时,显示周围雷的数目;当选择雷时,显示所有雷的数目,游戏结束。定义头文件:编写game():初始化数组:打赢棋盘:随机放入雷:检查周围雷的个数:游戏判定:接下来定义一个菜单就可以玩游戏了:测试:...原创 2018-04-21 15:54:50 · 2354 阅读 · 1 评论 -
解析static关键字的作用
在C语言中static的作用:1.)修饰局部变量:static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,随程序的结束而结束。2.)修饰全局变量:被static修饰的全局变量只能在本文件中访问,不能再其它文件中访问。3.)修饰函数:修饰的函数只能在本文件中调用,不能被其它文件调用。static修饰的局部变量存放在全局数据区的静态变量区,初始化的时候自动初始化为0;...原创 2018-11-15 16:03:15 · 430 阅读 · 1 评论 -
C语言:可变参数列表源码的剖析
对可变参数解析之前,我们先看一个栗子:实现一个函数可以求任意个参数的平均值。声明一个va_list类型的变量arg,它用于访问参数列表的未确定部分。这个变量是调用va_start来初始化的。它的第一个参数是va_list的变量名,第2个参数是省略号前最后一位有名字的参数。初始化过程把arg变量设置为指向可变参数部分的第一个参数。为了访问参数,需要使用va_arg,这个宏接受两个...原创 2018-05-11 14:01:09 · 270 阅读 · 0 评论 -
C语言:字符的左旋运用及练习
实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB 两种方法原理相同:都是通过将字符串第一个的字符先复制一份,然后依次将字符串向左移动一位,再将第一个字符赋值到最后。若要左旋K个字符,只需循环K次(一中运用数组的方法,一种运用指针的方法)2.判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AAB...原创 2018-05-11 15:01:30 · 306 阅读 · 0 评论 -
【浅谈】栈帧的创建与销毁
由于我软件有点问题,已经初步了解栈帧,在网上看到兄弟文章,已得到兄弟同意。希望能帮助大家:http://blog.youkuaiyun.com/qq_41866437/article/details/8007072什么是栈帧? 简单点说,C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。 从逻辑上...转载 2018-05-14 14:19:00 · 581 阅读 · 0 评论 -
研究 sscanf sprintf 2.研究 fread fwrite
1.sscanf函数 sscanf函数原型为int sscanf(const char *str,const char *format,.........) 将参数str的字符串根据参数format字符串转换并格式化数据,转换后的结果存在对应的参数内。具体功能如下:(1)根据格式从字符串中提取数据。如从字符串中取出整数,浮点数和字符串等。(2)取指定长度的...原创 2018-06-22 17:42:09 · 271 阅读 · 0 评论 -
动态通讯录的实现
大家在编写动态通讯录之前,我希望大家能够了解malloc和realloc的用法:https://blog.youkuaiyun.com/cdatreides/article/details/80522095希望大家能够通过我的这篇博客了解malloc和realloc头文件:#ifndef __CONTACT_H__ //防止头文件的重复引用#define __CONTACT_H__#end...原创 2018-06-16 22:36:13 · 528 阅读 · 0 评论 -
动态内存开辟 malloc calloc realloc free 函数
动态内存函数的介绍malloc和free1.void* malloc (size_t size)这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。-如果开辟成功,则返回一个指向开辟好的空间指针。-如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。-返回值的类型是void*,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使...原创 2018-05-31 12:16:00 · 329 阅读 · 0 评论 -
静态通讯录的实现
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1. 添加联系人信息2. 删除指定联系人信息3. 查找指定联系人信息4. 修改指定联系人信息5. 显示所有联系人信息6. 清空所有联系人7. 以名字排序所有联系人 经过多次调试,代码初成:#ifndef CONTACT_...原创 2018-05-30 22:15:52 · 250 阅读 · 0 评论 -
自定义类型:结构体,枚举,联合
结构体类型的创建:结构体的声明:结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。struct stu//stu结构体名称{ char name[20];//定义类型,没有创建空间 int age;};int main(){ struct stu s;//定义结构体变量,包含(name,age) system("pause"); retur...原创 2018-05-30 17:48:39 · 253 阅读 · 0 评论 -
回调函数的理解及qsort函数各种类型的排序
什么是回调函数?回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。接下来让我们运用qsort函数来加深对回调函数的理解; qsort是编译器函数库自带的快速排序函数。...原创 2018-05-24 19:33:31 · 897 阅读 · 5 评论 -
对函数指针 函数指针数组 函数指针数组指针 指向函数指针数组的指针的理解
1.函数指针什么是函数指针:是指针,有能力指向一个函数,既可以通过指针调用函数,亦可通过函数名直接表示。接下来我们看张图:在这里,你肯定会想函数名怎么会有地址,存在于哪里?接下来,我们看两段代码:(1). char *(*fun1)(char *p1,char *p2)(2).(2) char * *fun2(char p1,char p2)第一个看起来更像函数第一题看起来...原创 2018-05-23 22:05:05 · 253 阅读 · 0 评论 -
对指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针的简易理解
在介绍指针定义之前,首先声明一些概念:指针和数组无关:1.指针和数组是两种不同的类型。2.数组名不能整体赋值,数组名不能作为左值。数组名单独使用时代表整个数组,数组名在被取地址时,代表整个数组的地址。下来,我来介绍一些常见的指针名词:指针数组:是数组,是一个存放指针的数组。比如:int *arr[10].数组指针:是指针,有能力指向一个数组。比如:int (*p)[10];//...原创 2018-05-23 11:42:00 · 318 阅读 · 0 评论 -
C语言:有一个字符数组的内容为:&quot;student a am i&quot;,请你将数组的内容改为&quot;i am a student&quot;.
在做这个题之前,我们先对此分析:首先我们将字符串全都逆置:student a am i-->i ma a tneduts,然后我们在将每个单词逆置得到:i am a student.有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)#inclu...原创 2018-05-18 17:28:15 · 225 阅读 · 0 评论 -
C语言:main函数参数的使用和指针数组的理解结合实例
对于main函数。我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了。 在这里,我们能够看到main()函数事实上是含有三个參数的,各自是int argc, char *argv[ ], char *envp[ ]这三个參数事实上就是main函数的參数。在c的编译器中。通常是同意main函数是没有參数的。1.argc (arg...原创 2018-05-17 20:40:53 · 473 阅读 · 0 评论 -
C语言:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
#include<stdio.h>#include<windows.h>void reverse_twoNumber(int a[],int len){int res=0;int num=0;int num2=0;int k=0;int i=0;for(i=0;i<len ;i++)//找出两个数的异或{res^=a...原创 2018-05-17 18:43:06 · 339 阅读 · 0 评论 -
C语言:在屏幕上打印杨辉三角。
在编写这个程序之前,我们应该清楚什么是杨辉三角?解释:每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。第n行的数字有n项。#include<stdio.h>#include<windows.h>#define N 10 定义行数int main(){int i;int j;int a[N][N];for(i=0;i&l...原创 2018-05-17 12:33:27 · 10071 阅读 · 0 评论 -
解析const关键字的作用
一直以前被const和static所迷惑,每次都感觉自己知道,却每次被面试官问起时无话可说。希望以后的你我路路顺风!每次提及const我们都知道const可以修饰,并且被const修饰的不能更改,如果说我们每次这样回答面试官的问题,那么你就如我一样,可以回家了。const其实是contant的缩写,意思是不变的,永恒的,它的作用也就如它的字面意思一般。只要一个变量前面用const修饰,...原创 2018-11-15 17:23:51 · 1688 阅读 · 1 评论