
C语言
ty6693
这个作者很懒,什么都没留下…
展开
-
对指针的理解【C语言中】
在这里首先声明一点,指针和数组没有任何关系。指针的概念:指针即地址,用来存放地址的变量叫指针变量;数组的概念:具有相同的数据类型且按一定次序排列的一组变量的集合体;今天来介绍一下: (1)指针数组 (2)数组指针 (3) 函数指针 ...原创 2018-05-02 23:04:26 · 1795 阅读 · 0 评论 -
Linux环境下C语言的翻译过程及原理(使用gcc编译器)
我们平常编写完C语言代码后经过编译然后运行便可得到程序相应的结果。但是我们知道计算机只认识二进制语言,所以当编写完程序后要想计算机能够识别并执行,这其中必然包含一个将C语言代码变成二进制语言(可执行程序)的过程,我们称这个过程为程序的翻译过程。而执行翻译过程的工具叫做编译器。在VS2013中,当程序代码编写好后,按F5便可执行程序得到结果,此过程包含了翻译和执行的过程,所以我们把VS2013这...原创 2018-04-13 23:42:30 · 1059 阅读 · 0 评论 -
整型、浮点型数据在内存中是如何存储的?【例题解析】
前言 我们都知道数据,不论整型,浮点型等,在内存中都是以二进制形式存储的。今天主要以整型和浮点型为例,来看一下它们在内存中的存储形式及原理。内置的基本数据类型(32位机器下):char 字符型, 占1个字节short 短整型,占2个字节int 整型,占4个字节long 长整型,占4个字节float 单精度浮点型,占4个字节double 双精度浮点型,占8个...原创 2019-02-11 18:59:17 · 4444 阅读 · 0 评论 -
C语言逆置/反转单链表(头插+头删、3个指针)
首先我们需要知道的是逆置单链表不是逆序打印单链表,逆置单链表改变了原链表!!!逆置单链表的两种方法:头删+头插;3个指针#include <stdlib.h>#include <assert.h>#include <stdio.h>typedef int DataType;typedef struct SListNode{ DataTy...原创 2018-09-09 17:26:53 · 642 阅读 · 0 评论 -
无头单链表中删除非尾节点及插入节点(不能遍历链表)
首先给出链表节点的定义:#include <stdlib.h>#include <assert.h>#include <stdio.h>typedef int DataType;typedef struct SListNode{ DataType data; struct SListNode *pNext;} SListNode;...原创 2019-02-13 16:31:33 · 371 阅读 · 0 评论 -
合并两个有序链表,合并后依然有序
第一步:找到合并后链表的第一个结点两个有序链表中,把第一个结点数据小的作为合并后链表的第一个结点第二步:哪个结点的数据小哪个结点就尾插到合并后的链表中比较两个链表中结点数据大小,数据小的结点尾插到合并后的链表中,同时该结点向后走,直到两个链表中有一个为空。第三步:将仍有结点的链表尾插到合并后的链表中#include <stdlib.h>#include <...原创 2018-09-10 08:31:21 · 843 阅读 · 0 评论 -
C语言实现扫雷游戏(第一次不被炸死;坐标周围没有雷时,可实现展开)
此扫雷游戏可以实现以下几个功能:显示该位置周围8个区域雷的个数 第一次不被炸死 坐标周围没有雷时,可实现展开那么我们如何实现呢?定义两个二维数组:一个作为玩家棋盘,初始化为全 ' *';一个作为设计者棋盘,初始化为全' 0'。这里玩家棋盘自然是给玩家扫雷用的,而设计者棋盘可以显示雷的个数及分布情况,可供设计者检查程序代码是否正确。 通过设计者棋盘随机布一定数量的雷,这里我们约定...原创 2019-02-09 21:36:30 · 920 阅读 · 0 评论 -
C语言实现简易版三子棋游戏
思路:我们知道三子棋游戏是横三竖三斜三中只要有一种情况下连起来的字符相同,便视为该用户赢得此次游戏;否则,如果棋盘中再无位置可以放下某一字符,便视为平局。首先,由于本次游戏是用户与电脑PK,所以用户所下的棋我们可以通过键盘输入获得,而电脑所下的棋便可以通过srand()函数和rand()函数随机生成。其次,由于要判断横三竖三斜三所连字符是否相同,这就需要保存用户和电脑每次所下的棋,所以我们可以...原创 2019-02-08 16:46:55 · 573 阅读 · 0 评论 -
C语言求两个数的最大公约数、最小公倍数(三种方法)
最大公约数:也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。(如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数)最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。以两个整数为例,我们知道最小公倍数=两整数乘积 / 最大公约数。那么在求出最大公约数的基础下,利用该公式便可求出最小公倍数。那么如何求两个...原创 2018-11-09 17:24:27 · 25970 阅读 · 2 评论 -
如何使用C语言实现简单迷宫(递归和非递归实现 含图例)
1.非递归实现简单迷宫:只有一条通路的迷宫思路:在找迷宫通路的时候,我们往往是在给定入口(入口合法且为通路)的情况下,沿着入口的某个方向走(此方向是通路)。现给定走迷宫的方向:上、左、右、下,即优先朝“上”走,如果“上”不通,朝“左”走;如果“左” 不通,朝“右”走;“右”再不通的话,朝“下”走。每次在当前步cur可以走通的情况下,先将cur保存起来,并将其标记成已走过的步,然后判断下一步...原创 2018-11-19 15:50:27 · 6568 阅读 · 0 评论 -
C语言求1到10000的水仙花数
定义:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。 这里我们认为n位数中,只要每位的n次方等于该数,该数便是一个水仙花数。求解思路:1.由于不知道有几位数,所以首先我们先求出n位数确定的位数 2.在求余算出n位数的余数之后,利用po...原创 2019-01-25 19:30:32 · 5490 阅读 · 2 评论 -
C语言实现1到100简单猜数字游戏
猜数字游戏就是系统随机生成一个数字,我们来猜的游戏。这里我们约定 1表示玩游戏,0表示退出游戏。那么怎么才能让系统随机生成一个数字呢?这里我们想到一个函数:rand()函数。通过查阅MSDN软件我们可以看到rand()函数是一个返回值为int型的无参函数 ,而其返回的是0到RAND_MAX的一个随机整数。那么RAND_MAX是多大呢?在编程软件如VS2013中查看RAND_...原创 2019-01-26 11:18:54 · 20252 阅读 · 4 评论 -
为啥在VS中使用scanf函数会有警告呢?如何解决此问题?(如何添加#define _CRT_SECURE_NO_WARNINGS 1)
相信很多初学者刚开始接触编程软件如VS2013时,在使用scanf函数时,总会出现下面的问题: 如果是在VS2013中,此类警告会导致程序生成不成功。我们看到该警告提示中前半部分说该函数不安全,考虑使用scanf_s函数来替换该函数。但是我们尽量不要使用scanf_s函数,因为此函数不是C语言库函数提供的函数,而是VS这个编译器自己提供的一个函数。如果我们在VS编译器中使用此函数则不会报警...原创 2019-01-26 14:48:01 · 3116 阅读 · 3 评论 -
C语言中关于 strlen 和 sizeof 的用法及区别(含例题及解析)
一、前言首先我们需要知道的是,sizeof既是一个单目操作符,也是一个关键字,其作用是求操作数的类型长度(以字节为单位)。而strlen是一个字符串操作函数,是一个参数为指针类型返回值为size_t(unsigned int)的函数,求的是字符串的长度。所以现在我们知道sizeof是一个求操作数类型长度的操作符(关键字),而strlen是一个求字符串长度的字符串操作函...原创 2019-01-31 18:25:32 · 4966 阅读 · 4 评论 -
C语言操作符总结
目录1.算术操作符2.移位操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7.逻辑操作符8.条件操作符9.逗号表达式10.下标引用、函数调用和结构成员C语言中操作符总共有10种,分别是:算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员。接下来一一...原创 2019-01-27 17:32:50 · 7493 阅读 · 6 评论 -
求一个数的二进制序列中1的个数(3种方法)
前言:一个数要存储在计算机中,是以该数二进制补码形式存储的。法1(不推荐使用):思路:当我们想要得到一个十进制数的每一位时,通常是采用模10除10的方法,模10得到最低位,除10得到高位,一直重复。那么想要得到一个数的二进制的每一位时,也可以采用模2除2的方法。//求一个数存储在二进制数中1的个数(补码形式存储,所以算的是该数二进制补码中1的个数)int count_one1(...原创 2019-01-27 21:39:25 · 4974 阅读 · 1 评论 -
如何做到不创建临时变量,交换两个数的内容呢?(2种方法)
如果可以使用临时变量以实现交换两个整数的话,那么很简单。就像我们平时想交换两个盘子中的食物一样,可以使用一个空盘子。代码如下#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>int main(){ int a = 0, b = 0, temp = 0; printf...原创 2018-11-09 16:47:48 · 409 阅读 · 0 评论