c语言

C语言 puts

丶灬走出姿态 提交于 2020-02-27 19:11:03
C语言 puts #include <stdio.h> int puts(const char *s); 功能:标准设备输出s字符串,在输出完成后自动输出一个'\n'。 参数: s:字符串首地址 返回值: 成功:非负数 失败:-1 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <time.h> int main(void) { // puts() // 自带换行,空格可以输出 // 输出字符串自带换行,遇到\0停止 // puts("");换行操作 char ch3[] = "heelo world"; puts(ch3); puts("heelo\0 world"); return 0; } puts 使用案例 来源: https://www.cnblogs.com/xiangsikai/p/12373684.html

顺序栈的c语言实现和OOP实现

。_饼干妹妹 提交于 2020-02-27 17:02:58
目录 C语言实现顺序栈和OOP实现顺序栈 1,顺序栈 2,C语言实现顺序栈 3,用OOP实现一个顺序栈 C语言实现顺序栈和OOP实现顺序栈 1,顺序栈 (1)定义:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 (2)栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。 (3)图解: 2,C语言实现顺序栈 #include<stdio.h> #include<assert.h> #define STACK_LEN 5 typedef struct Sqstack { int elem[STACK_LEN]; int top;//当前可存放数据的下标 }Sqstack,*Pstack; void InitStack(Pstack ps) { assert(ps!=NULL); ps->top=0; }

C语言变量

谁说胖子不能爱 提交于 2020-02-27 15:18:18
C语言变量 任何一种编程语言都离不开变量,特别是数据处理型程序,变量的使用非常频繁,没有变量参与程序甚至无法编制,即使编制运行后的意义也不大。变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。 C语言是一种应用广泛的善于实现控制的语言,变量在C语言中的应用更是灵活多变。那么变量究竟是什么呢?变量是内存或寄存器中用一个标识符命名的存储单元,可以用来存储一个特定类型的数据,并且数据的值在程序运行过程中可以进行修改。可见,变量首先是一个标识符或者名称,就像一个客房的编号一样,有了这个编号我们在交流中就可方便言表,否则,我们只可意会,那多不方便。为了方便,我们在给变量命名时,最好能符合大多数人的习惯,基本可以望名知义,便于交流和维护;其次,变量是唯一确定的对应内存若干存储单元或者某个寄存器。这些是编译器来保证的,用户一般不用费心。 程序员一旦定义了变量,那么,变量就至少可为我们提供两个信息:一是变量的地址,即就是,操作系统为变量在内存中分配的若干内存的首地址;二是变量的值,也就是,变量在内存中所分配的那些内存单元中所存放的数据。 由于程序的多样需要,我们对变量也有各种各样的要求,比如:变量的生命期,变量的初始状态,变量的有效区域,变量的开辟地和变量的开辟区域的大小等等;为了满足这些要求,C语言的发明者就设置了以下变量: 1、 不同数据类型的变量;如:char cHar, int

单片机常用的14个C语言算法,看过的都成了大神!

a 夏天 提交于 2020-02-27 13:30:15
算法(Algorithm): 计算机解题的基本思想方法和步骤。 算法的描述: 是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x[1]中,个位是2的个数存放在x[2]中,……个位是0的个数存放在数组x[10]。 二、求两个整数的最大公约数、最小公倍数 分析: 求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。 例如: 求 m="14" ,n=6 的最大公约数. m

C语言结构体详解

让人想犯罪 __ 提交于 2020-02-27 12:16:05
数组(Array),它是一组具有相同类型的数据的集合 。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。 我们就需要使用结构体(Struct)来存放一组不同类型的数据 。结构体的定义形式为: struct 结构体名 { 结构体所包含的变量或数组 } ; 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。 示例 struct stu { char * name ; //姓名 int num ; //学号 int age ; //年龄 char group ; //所在学习小组 float score ; //成绩 } ; stu 为结构体名,它包含了 5 个成员,分别是 name、num、age、group、score。结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化。 注意 :大括号后面的分号;不能少,这是一条完整的语句。 结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据 。 像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而 结构体可以包含多个基本类型的数据

转义字符(C语言)

无人久伴 提交于 2020-02-27 11:20:21
#include <stdio.h> /** 转义字符 --通常用转义字符表示ASCII字符集中不可打印的控制字符和特定功能的字符 --转义字符只能使用小写字母,每个转义字符只能看做一个字符 -- \v 垂直制表 \f 换页符对屏幕没有任何影响,但是会影响打印机执行响应操作 */ int main(void) { //换行符\n //横向跳格符 \t ,\t 是一个制表符号 相当于键盘上的Tab键的长度(一般为8个空格),相当于tab键,8个空格长度 printf("大家好,我是小花\t"); printf("嗨,我是小李\n\n\n"); //输出的是:大家好,我是小花 嗨,我是小李 //退格符 \b ,使当前的输出位置退一格,即输出的起始位置左移一位 printf("我要像的风一样自由\n"); printf("老李,你\b要老婆不要\n\n\n"); //这里输出的时候“要”字把“你”覆盖掉了,因为退了一格;所以这里输出的是 老李,要老婆不要 //回车符 \r ,使当前输出位置移到本行开头;如果本行开头有别的内容,将进行覆盖操作 printf(" 大家好,我是一格哈哈哈"); printf("\r嗨,我是奥术大师\n"); //输出的是:嗨,我是奥术大师 大家好,我是一格哈哈哈;可以看到后面的移到了本行的开头 printf("大家好,我是一格哈哈哈"); printf("

算法之排序(上)-c语言实现

旧街凉风 提交于 2020-02-27 09:23:56
文章来源: http://blog.seclibs.com/算法之排序(上)-c语言实现/ 在上一篇文章中,我们说了时间复杂度为 O(n2)的几个排序算法,冒泡排序、插入排序、选择排序,在理解上和实现上都没有太难的地方,这里在实现的时候,没有再自己实现数组或链表,而是使用了c语言自带的数组进行实现的,代码中没有太难理解的地方,就直接上代码了 如果需要下载代码,请移步文末 代码: GitHub 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客: http://blog.seclibs.com/ 来源: oschina 链接: https://my.oschina.net/u/3677719/blog/3163271

动手学C语言--S1绪论篇

寵の児 提交于 2020-02-27 08:35:36
第一章:计算机程序设计与算法实现 计算思维能力培养 程序设计算法结构与组成 Visual C++ 集成工具 计算机程序算法表示 加法法则 程序流程图的描述 N-S图 程序设计语言描述 高级语言(这才是实打实的) 程序算法案列实现 计算思维能力培养 C语言:是面向过程的 C++:面向对象,也可以实现面向过程 JAVA:跨平台分布式语言 VB:交互逻辑思维 Python:主要是面向对象进行问题求解的编程语言;其语法简洁清晰,类库丰富强大,更是能轻松结合其他语言:尤其是:C语言,C++语言; 程序设计过程 计算机解决问题的过程就是将其转化为计算机思维化的过程; 程序设计算法结构与组成 计算机程序组织结构: 程序 = 数据结构+程序算法 数据结构:是对程序操作对象的数据类型及数据组织形式的描述与定义; 在程序中:是对内存变量及存储数据计算范围的定义和约定; 程序算法: 是对程序操作过程,即操作步骤的算法描述的指令集合; 在程序中,是对操作对象和程序流程的逻辑控制,是实际问题求解的实现过程; 但是,对当下来说: 程序=数据结构+数据结构+设计方法+编程语言+编程工具 对于常量:用全部大写表示----提高代码可读性; 例1实现计算圆柱体计算体积 代码实现: Visual C++ 集成工具 文件管理和文件名命名规则 创建text 然后保存成 .c文件; 运行,调试工具:从快捷键按钮出发;

数据结构之栈-c语言实现

非 Y 不嫁゛ 提交于 2020-02-27 07:47:06
文章来源: http://blog.seclibs.com/数据结构之栈-c语言实现/ 在上一篇文章中说过,栈在实现上分为顺序栈和链式栈两种。 顺序栈: 用数组实现的栈 链式栈: 用链表实现的栈 因为栈就是一种“功能受限”的顺序表,所以在实现的时候,在之前数组和链表的基础上进行修改即可达到效果。 顺序栈 在实现顺序栈的时候,为了更好的表示栈顶元素top,我将之前数组中的使用个数used替换为top,在其他方面并没有太大的变化。 需要下载代码请移步至文末。 链式栈 链式栈在原先链表的基础上省去了不少内容,像按位置插入,删除指定内容等,这些都是由于栈的特性决定了只能从一端进行插入和删除,也正是因为如此,所以在单链表的基础上进行修改的,使用双链表没有太大的意义。 需要下载代码请移步至文末。 代码: 顺序栈: GitHub 链式栈: GitHub 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客: http://blog.seclibs.com/ 安全库: http://www.seclibs.com/ 来源: oschina 链接: https://my.oschina.net/u/3677719/blog/3162273

数据结构之单链表-c语言实现

丶灬走出姿态 提交于 2020-02-27 05:53:23
文章来源: http://blog.seclibs.com/%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e4%b9%8b%e5%8d%95%e9%93%be%e8%a1%a8-c%e8%af%ad%e8%a8%80%e5%ae%9e%e7%8e%b0/ 常用的链表有单链表、双向链表和循环链表,这次只完成了单链表的c语言实现,在写代码中所遇到的问题在代码注释中也都有标注,在实现上最关键的还是对整体结构的理解,只有对整体结构有一定的了解,才能在具体的代码实现中少走很多的弯路,在具体的代码实现过程中,要着重关注每一个变量的内容和具体的含义,只有搞清楚了这一点才能在实现的时候不出现一些莫名其妙的问题。 比如在这次实现中,就碰到了在插入初始插入数据的时候,输出的内容一直与插入时相反,也就是说,起初预想的是每次插入数据都是在最后一位进行插入,而实际情况是从开头进行插入的,在仔细研究完代码后,发现了问题所在 我们在第一次插入数据的时候,情况是这样的 但是如果再继续往后面插入的时候,由于list所指的内存地址并没有改变,所以插入的情况是这样的 就造成了输出与输入呈倒序的方式,所以只需要将list所指向的内存地址进行变化就可以了,修改后的代码如下 所以对每个变量所代表的含义要特别清楚才能在代码实现的时候更加的清晰。 整体代码如下,如果需要下载代码请移步到文末 代码: