C语言
文章平均质量分 70
TT在长大
Stay hungry, Stay foolish.
展开
-
[C/C++]C++的IO流
本文对比了C语言的输入与输出,介绍了流的概念、C++IO流以及stringstream。目录一、C语言的输入与输出二、C++中流的概念三、C++IO流1.C++标准IO流2. C++文件IO流四、stringstream一、C语言的输入与输出C语言中我们最长用到的输入输出方式就是scanf ()与printf()。scanf(): 从标准输入设备(键盘)读取数据,并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。...原创 2021-09-26 22:30:08 · 1791 阅读 · 4 评论 -
[数据结构]八大排序算法(C语言)
概述排序:给定一个元素序列,按照每个元素的关键码将元素重新排列,使关键码从小到大(正序)或从大到小(逆序)排列。排序可根据是否将全部元素放入内存分为内部排序和外部排序。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[原创 2021-06-13 19:05:48 · 19934 阅读 · 23 评论 -
[C/C++]C++的命名空间,缺省参数,引用,auto关键字,内联函数等
本文主要梳理了C++当中一些琐碎的知识点,包括有命名空间,缺省参数,引用,auto关键字和内联函数。命名空间当我们有两个名字相同的同学时,为了明确区分它们,我们在使用名字之外,还会使用一些额外的信息,比如籍贯等等。在C++ 中可能会写一个名为 ADD() 的函数,而在另一个可用的库中也存在一个相同的函数 ADD()。编译器就无法判断是哪一个 ADD() 函数。所以引入了命名空间这个概念。变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的原创 2021-05-21 13:56:31 · 9814 阅读 · 9 评论 -
[数据结构]栈和队列的几个简单OJ(括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列)
本文主要是几个OJ题的思路和代码(C实现)包括:括号匹配问题,用队列实现栈,用栈实现队列,设计循环队列1.括号匹配问题 题目:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 思路:在栈中存放左括号,遇到右括号,则出栈顶元素,判断栈顶元素是否和当前括号匹配,如果不匹配,则说明不匹配。遍历完所有字符,如果栈为空,则表示完全匹配。 源码:(包括了栈的...原创 2021-04-22 17:10:54 · 2156 阅读 · 1 评论 -
[数据结构]C语言对顺序表的接口实现(增删查改)
线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。顺序表则是线性表的一种,是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为: 1. 静态顺序表:使用定长数组存储。#define N 100typedef struct SeqList{ SLDataType array[N]; // 定长数组 size_t size; // 有效数据的个...原创 2021-03-31 17:13:22 · 21330 阅读 · 0 评论 -
[C/C++]C语言的程序环境和预处理
本文主要讲述C语言的程序环境和预处理。一、程序的翻译环境和执行环境 存在源代码转换为可执行的机器指令的翻译环境和实际执行代码的执行环境,两个不同的环境。 1.翻译环境 每个源文件通过编译过程分别转换成目标代码,每个目标文件由链接器捆绑在一起形成可执行程序。过程图解如图: 编译本身也分为下面几个阶段: VIM编译期间的每一步: (1) 预处理 选项gcc -E...原创 2021-03-27 22:24:16 · 10065 阅读 · 0 评论 -
[C/C++]C语言中对文件的操作方法
C语言中有许多对文件的操作方法,首先我们要明确一些概念,在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。文件名:一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含3部分:文件路径+文件名主干+文件后缀文件类型:根据数据的组织形式,数据文件被称为文本文件或者二进制文件。(存储同样大小的数据,二进制文件大小小于文本文件原因如图)文件缓冲区:ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块原创 2021-03-27 18:43:23 · 14799 阅读 · 3 评论 -
[C/C++]C语言内存开辟,回收及柔性数组
以前使用的静态存储方式开辟空间如: int vvv = 100; char arrr[20];上述方式有两个特点: 1. 空间开辟大小是固定的。 2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是我们对于空间的需求,有时不只是上面的情况。我们需要的空间大小在程序运行的时候才能知道,那这种编译时开辟空间的方式就不能满足了。这时就应该使用动态内存开辟。一、动态内存函数的介绍 1.malloc C语...原创 2021-03-26 23:13:33 · 2737 阅读 · 1 评论 -
[C/C++]c语言实现简单通讯录(动态内存)
设计目标:写一个通讯录,每个人的信息包括:1.名字,2.年龄,3.性别,4.电话,5.住址 //功能:1. 增加一个人的信息 2. 删除一个指定的联系人 3. 查找一个指定的联系人 ...原创 2021-03-25 23:59:07 · 23697 阅读 · 0 评论 -
[C/C++]C语言中的自定义类型(结构体,枚举,联合)
之前的文章中介绍了C语言中的数据类型,本文将介绍C语言中的自定义类型包括结构体、枚举、联合。一、结构体 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构体的声明 (1)标准的声明格式:struct tag{ member-list;}variable-list; 如一个通讯录的结构体:struct Address //通讯录{ char name[20];...原创 2021-03-24 14:54:26 · 29116 阅读 · 0 评论 -
[C/C++]C语言中字符相关的库函数的模拟实现
本文主要介绍处理字符和字符串的库函数的功能及模拟实现。1.对库函数按照功能可分为以下几类: (1)求字符串长度:strlen; (2)长度不受限制的字符串函数:strcpy、strcat、strcmp; (3)长度受限制的字符串函数:strncpy、strncat、strncmp; (4)字符串查找:strstr、strtok;...原创 2021-03-23 17:53:55 · 9668 阅读 · 1 评论 -
[C/C++]C语言中数据在内存中的存储
1. 数据类型:类型可以归类为 整形家族(包括int,long,short,long long,char); 浮点数家族(包括float,double); 构造类型(数组类型;结构体类型 struct;枚举类型 enum;联合类型 union); ...原创 2021-03-14 17:54:28 · 16254 阅读 · 29 评论 -
[C/C++]C语言实现杨辉三角形
背景:百度百科中介绍杨辉三角是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算术》一书中出现。是中国数学史上的一个伟大成就。设计思路:杨辉三角的两个腰边的数都是 1,其它位置的数都是上一行距离最近的两个数之和,第一行为中间位置为1。实现:对于n阶杨辉,建立n行2n+1列二维数组,初始化为0,依照上述方法,处理好边界即可。边界处理,第一行中间位置为和第1列n行和第n列n行为1;第1列和第n列其他位置为空。#define _CRT_SECURE_NO_WARNIN原创 2021-03-12 22:17:25 · 2835 阅读 · 0 评论 -
[C/C++]C语言实现扫雷小游戏
win10系统取消了经典的扫雷游戏,闲来无事,用C语言写了一个简单扫雷小游戏。希望大家多多指正。设计目标:通过C语言实现扫雷小游戏,能够判断胜负以及简单的人机交互。成果如图:代码:game.h#include<stdio.h>#include<time.h>#include <stdlib.h>#define ROW 11 //展示时比实际数组小2,也就是一圈#define COL 11#define ROWS ROW + 2原创 2021-03-04 22:01:17 · 2043 阅读 · 1 评论 -
[C/C++]C语言实现三子棋小游戏
设计目标:通过C语言实现三子棋小游戏,能够判断胜负以及简单的人机交互。 目前的人机下棋是通过rand函数随机产生坐标,不具有对抗性,后续会推出更强大的人机。1.头文件:包含初始化棋盘,打印棋盘,玩家下棋,电脑下棋,判断胜负等函数的声明,以及宏定义行列数,方便以后扩展。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<time.h>#define ROW 3 ...原创 2021-03-03 17:56:49 · 29362 阅读 · 1 评论 -
[C/C++]C语言对整型数组的一些简单操作
设计目标:创建一个整型数组,完成对数组的操作。 1.实现初始化数组为全0(init) ; 2.实现打印数组的每个元素(printf); 3.实现完成数组元素的逆置(reverse);一些比较简单的对整型数组的操作,也比较常用,方便以后使用。思路:1.初始化数组为全0:遍历逐个...原创 2021-03-02 09:19:58 · 2623 阅读 · 0 评论 -
[C/C++]C语言实现简单的冒泡算法
用C语言实现对整形数组的冒泡排序冒泡排序:比较两个相邻的元素,将值大的元素交换到右边。思 路: 遍历数组,对数组中相邻的两个元素进行比较,如果需要升序,前一个数据大于后一个数据时,交换两个位置上的数据。数组中n个元素,最多进行n - 1次排序 ,每次进行 n - 1 - i次交换,i为当前排序的次数。按照这一思路得到如下代码:void BubbleSort(int arr1[] , int Array_length1){ int i = 0; int j = 0;...原创 2021-03-01 18:32:27 · 2128 阅读 · 0 评论 -
[C/C++]C语言实现的猜数字游戏(1-100)
程序产生一个1-100的随机数,玩家根据提示猜出数大小。随机数产生:先用srand((unsigned int)time(NULL))初始化随机数发生器,srand函数是随机数发生器的初始化函数。为了防止随机数每次重复,常常使用系统时间来初始化。 再用rand() % 100 + 1产生1-100的随机数,rand函数是C语言中用来产生一个随机数的函数。下面是示例代码:#include<stdio.h>void memu(){...原创 2021-02-11 12:43:24 · 4771 阅读 · 3 评论 -
[C/C++]C语言中函数递归的几个简单案例(打印数的每一位,N的阶乘,strlen的模拟,计算一个数的每位之和,字符串逆序,计算斐波那契数,实现n的k次方)
1.函数递归概念 程序调用自身的编程技巧称为递归 。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,可以把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。2.两个必要条件 (1)要有限制条件; (2)每次调用都会向限制条件靠近;3.简单案例 (1)递归实现打印一个整数的每一位int pr (int a){ if (a > 9) { pr(a / 10); } printf("%d " , a%10...原创 2021-02-10 16:13:49 · 2533 阅读 · 0 评论