C语言
本专栏主要是c语言基础知识。简短而简洁的讲解C语言
辉小歌
九局下半转啊转,我把帽子反戴,还在期待逆转。
展开
-
三人三鬼过河(野人与传教士过河)问题c/c++代码
#include<bits/stdc++.h>using namespace std;vector< pair<int,int> > path;map< vector<int> ,int > vis;void dfs(int La,int Lb,int Ra,int Rb,int flag)// La 左边的好人数 Lb左边的坏人数 flag是左边操作还是右边{ if( (Lb>La&&La) || (Rb&g原创 2021-07-31 12:05:45 · 1301 阅读 · 0 评论 -
C语言经典算法 21-30
目录21 一个有序的数组插入一个数22 将一个数组逆序输出23 报号 求最后是谁21 一个有序的数组插入一个数题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后 此元素之后的数,依次后移一个位置。 代码如下:#include<stdio.h>int main(void){ int a[11]={22,34,57,76,88,90,91,99,100,123}; i原创 2020-07-11 17:40:05 · 625 阅读 · 0 评论 -
C语言经典算法 11-20
C语言经典算法 11-20十一、求最大公约数和最小公倍数十二、统计字符串数字,字母,符号的各个数量十一、求最大公约数和最小公倍数题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。程序分析:利用辗除法。代码如下:#include<stdio.h>int main(void){ int a,b; int m,n;//m存放最大公约数n存放最小公共倍数 int temp=0; int i=0; scanf("%d %d",&a,&b); n=原创 2020-07-09 20:41:10 · 652 阅读 · 1 评论 -
C语言经典算法 1-10
目录一、排列组合题一、排列组合题题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。即:百位 和十位 和个位上的数字都不能相同 代码如下:#include<stdio.h>int main(void){ int i,j,k; int count=0; printf("\n"); for(i=1;i<5;i++) for(j=原创 2020-07-08 19:23:31 · 1353 阅读 · 0 评论 -
【c/c++】刷算法题时常用的函数手册 持续更新--
在做算法题的时候,有时候为了高效的做题,我们会使用一些函数,但是常用的函数确实太多了,时不时的会忘记一些于是我整理了一些常用的函数,方便自己查找和别人使用。都是超链接,点击直接跳转到对应的内容。c语言格式控制参数大全 例: %d %ld %f等c语言产生随机数函数 例:rand()C语言常用的数学函数 例:abs() sqrt()…C语言常用的字符串函数 例: strcmp()…C语言字符串输入输出函数 例: getchar() gets()…C语言文件操作函数 例: fopen(.原创 2021-04-18 17:02:47 · 2342 阅读 · 3 评论 -
is_sorted() 函数---一个判断数组和容器是否有序的函数
需要的头文件:#include<algorithm>需要的其他东西:using namespace std;作用: 检查数组或者容器是否被排序好。默认检查方式: 升序。特殊要求: 需要C++11的特性。返回值: true或false。例子:转载自: https://blog.csdn.net/qq_45228537/article/details/100210480...转载 2021-04-12 09:01:17 · 2326 阅读 · 2 评论 -
用tolower()和toupper()来实现对string进行大小写转换
int tolower(int c) 把给定的字母转换为小写字母。函数原型:int tolower(int c);参数c:这是要被转换为小写的字母。返回值:如果 c 有相对应的小写字母,则该函数返回 c 的小写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。用tolower()将string转换为小写字符上面的这个可以当作模板来记忆。int toupper(int c) 把小写字母转换为大写字母。函数原型:int toupper(int c);原创 2021-04-09 09:06:55 · 964 阅读 · 0 评论 -
to_string()函数----将int类型转换为string型
需要的头文件:#include<iostream>需要的其他东西:using namespace std;函数的作用:将一个int类型转换为string型用法:int sum=123;string a=to_string(sum);例子:原创 2021-04-08 20:41:04 · 396 阅读 · 0 评论 -
stoi() 函数----将一个string类型转换为int型
需要的头文件:#include<iostream>需要的其他东西:using namespace std;函数的作用:将一个字符串string类型转换为int 型用法格式:string a="123";int sum=stoi(a);例子:原创 2021-04-08 20:36:05 · 657 阅读 · 0 评论 -
用曼哈顿距离来巧解---输出菱形的问题
今天才发现输出菱形有一个特别巧妙的方法。就是用曼哈顿距离。详细资料可以看这里:曼哈顿距离那么如何用曼哈顿距离来输出菱形的呢?我们来分析一下。你会发现输出 " * " 号的位置到中心点的曼哈顿距离都是小于等于 n/2 的。 其中n代表菱形的行数。那么代码就如下:#include<iostream>#include<cmath>using namespace std;int main(void){ int n; cin>>n; int c=n/.原创 2021-04-05 19:25:24 · 583 阅读 · 0 评论 -
memcpy内存拷贝函数
需要的头文件#include<cstring>函数原型void *memcpy(void *destin, void *source, unsigned n);参数destin: 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。source:指向要复制的数据源,类型强制转换为 void* 指针。n : 要被复制的字节数。上面的关于参数的解释来自于百度百科。看起来有点繁琐,用通俗易懂的话说:第一个参数就是你要备份的数据第二个参数就是你的原数据第三个参原创 2021-04-01 13:48:36 · 312 阅读 · 0 评论 -
用substr()函数高效的输出一个字符串的所用子串
需要的头文件#include<string>需要的其他东西using namespace std;substr(pos,len) 返回从pos号位开始,长度为len的子串,时间复杂度为O(len)用它来输出一个字符串的所有字串是十分的方便的。原创 2021-03-30 17:20:12 · 599 阅读 · 0 评论 -
一个将字符串转换为整数的函数--atoi()
需要的头文件#incldue<stdlib.h>函数原型int atoi(const char *str)参数str : 要转换为整数的字符串。返回值该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。作用:C 库函数 int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。案例:...原创 2021-03-29 20:43:43 · 889 阅读 · 0 评论 -
一个判断字符是不是10进制数的函数------isdigit()
需要的头文件#include <ctype.h>函数原型int isdigit ( int c );isdigit() 用来检测一个字符是否是十进制数字。十进制数字包括:0 1 2 3 4 5 6 7 8 9例子:原创 2021-03-29 20:35:57 · 585 阅读 · 0 评论 -
sqrt()函数的详解和用法
sqrt()函数是我们经常使用的一个函数。下面我就详细的介绍它的一些用法和使用规范所需的头文件#include<math.h>函数原型double sqrt(double x);作用:sqrt() 用来求给定值的平方根常见的使用错误输出 36的开根号忽略了sqrt()函数的返回值是 double型。导致出错解决办法如下:常见的使用sqrt()函数的规范写法例如: 我们要判断一个数是不是质数,只需要判断 2 ~ n开根号 之间有没有可以整除的数就可以了错误的.原创 2021-03-22 15:24:02 · 301457 阅读 · 20 评论 -
C语言希尔排序(解析)
C语言希尔排序(解析)网上找的移动图:原创 2020-03-15 19:05:13 · 361 阅读 · 0 评论 -
C语言插入排序(解析)
##C语言插入排序(解析)运行结果:原创 2020-03-15 10:28:53 · 320 阅读 · 0 评论 -
c语言冒泡排序(解析)
c语言冒泡排序(解析)运行结果:原创 2020-03-14 17:23:47 · 547 阅读 · 0 评论 -
C语言选择排序(解析)
C语言选择排序(解析)运行结果:原创 2020-03-14 21:34:18 · 1197 阅读 · 4 评论 -
c语言内存管理
c语言内存管理C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。上面的图片来源:https://www.runoob.com/cprogramming/c-memory-management.html静态内存分配和动态内存分配的区别:静态内存分配 :存储空间的大小、位置在程序的执行过程中不能改变了,程序结束后内存会自动的收回。动态...原创 2020-03-19 14:02:04 · 516 阅读 · 0 评论 -
C语言文件操作函数
C语言文件操作函数fopen()函数fclose()函数fgetc()函数fgets()函数fputc()函数fputs()函数文件函数用法的一些例子fprintf()函数fscanf()函数fwrite()函数fread()函数putw()函数getw()函数feof()函数ferror()函数clearerr()函数ftell()函数fseek()函数rewind()函数C语言文件操作函数都...原创 2020-04-06 16:12:41 · 936 阅读 · 0 评论 -
C语言字符串输入输出函数
C语言字符串输入输出函数(1)putchar()函数格式: putchar©功能:向终端输出一个字符注意:输出的时候不会加回车(2) getchar()函数格式:字符型变量=getchar ()功能:从标准输入设备上读取单个字符,返回值为字符。例:(3)puts()函数格式: puts(s);功能: 向标准输出设备输出已经存在的字符串,并换行(puts()把最后的’\...原创 2020-03-21 18:36:15 · 12765 阅读 · 0 评论 -
C语言常用的字符串函数
C语言常用的字符串函数以下函数都在头文件 string.h 中(1)strcpy()字符串复制函数函数原型:char *strcpy(char *d ,char *s)功能:复制字符串s到字符串d ,返回字符串d当我们用 ’ = ‘号单独给字符串赋值是不可以的(这里不是边定义边赋值)。但是用strcoy()函数就可以。例:(2)strcat()字符串连接函数函数原型: cha...原创 2020-03-21 16:49:03 · 2193 阅读 · 0 评论 -
C语言常用的数学函数
C语言常用的数学函数(1)abs()函数函数原型:int abs(int i)功能:求整数的绝对值(2)labs()函数函数原型:long labs(long i)功能:求长型整数的绝对值(3)fabs()函数函数原型:double fabs(float i)功能:求浮点数的绝对值(4)floor()函数函数原型:double floor(double x)...原创 2020-03-21 16:19:28 · 14848 阅读 · 7 评论 -
c语言产生随机数函数
c语言产生随机数函数rand()函数和srand()函数 在头文件 stdlib.h中rand()函数返回一个从0~32767之间的随机整数,为了生成区间 [m,n] 之间的整数,可以用公式 rand()%(n-m+1)+m。例区间:[100,200],随机整数的计算方法为: rand()%(200-100+1)+100 即rand()%101+100;rand()函数是以种子(s...原创 2020-03-21 15:38:17 · 16347 阅读 · 2 评论 -
C语言一些常用的函数
C语言一些常用的函数(1)sizeof()函数 编译器自带的不用到任何包都能用。用法:sizeof(类型说明符, 数组名或 表达式); 或sizeof (变量名);返回值:变量所占的字节的长度。计算变量占了多大字节的空间,当计算字符串时我们知道,字符串后面会默认会加一个终止符也就是’\0’, sizeof()也会把它计算进去。例子:(2)strlen()函数在头文件<...原创 2020-03-20 21:10:51 · 9033 阅读 · 3 评论 -
C语言system的用法
C语言system的用法system()在头文件stdlib.h中system()是C语言中为了调用windows系统命令来设置。例:system(“cls”);//清屏system(“pause”);//暂停system(“title 名字”);//设置窗口名system(“time /T”);//显示当前时间system(“data /T”);//显示当前日期system(“...原创 2020-03-18 09:04:59 · 11882 阅读 · 4 评论 -
枚举类型
枚举类型当我们需要定义特别多的符号常量时,如果用define来声明的话特别的麻烦,于是enum(枚举类型)就出现了。枚举类型,可以简单的认为就是一些符号常量的集合。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};枚举变量的定义有三种:(1)先定义枚举类型,再定义枚举变量enum 枚举名 {枚举元素1,枚举元素2,……};enum 枚举名 变量名;(2)...原创 2020-03-27 18:25:16 · 284 阅读 · 0 评论 -
结构体和共用体
目录结构体共用体结构体概念:结构体类型是一种由用户根据实际需要自己构造的数据类型,需要先定义后使用。定义结构体的格式:struct 结构体类型名{ 数据类型1 成员名1; 数据类型2 成员名2; . . . . . . 数据类型n 成员名n; };//分号表示结构体类型定义结束结构体可以嵌套定义,即一个结构体内部成员的...原创 2020-03-26 23:46:59 · 597 阅读 · 0 评论 -
C语言typedef的用法
C语言typedef的用法C 语言提供了 typedef 关键字,你可以用它为一个现有类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。注意typedef只是为现有类型赋予一个新的名字,而不是创建新的类型。为了“见名知意”,请尽量使用含义明确的标识符,并且尽量大写。例:typedef int A;A s; 等价于 int ...原创 2020-03-16 15:48:18 · 419 阅读 · 0 评论 -
c语言输出等腰三角形
c语言输出等腰三角形这个例子的用意是为了加强对于for()语句嵌套的应用能力的加强。例:要输出:我们先一步步分析一下。首先肯定要弄一个两层循环,一个循环变量 i 用来控制行,一个循环变量 j 用来控制列。那么外层循环控制的是行还是列?我们来看一下。通过上图可以知道,外层循环是用来控制行,内层循环是用来控制列。要想输出目标图形我们可以先输出:这个图形如何输出我们分析一下:...原创 2020-03-17 18:01:13 · 39624 阅读 · 13 评论 -
c语言switch()语句
c语言switch()语句以上图片来源:https://wenku.baidu.com/view/41e0bb1ef08583d049649b6648d7c1c708a10bb7.html感谢大牛。注意:switch(表达式)这个表达式只能是整型,单个字符型,枚举型,不能是浮点数。case匹配后要输出的语句,就算有很多条也可以不用大括号,这和if()语句是不同的。、例子:case ...转载 2020-03-19 18:36:41 · 1508 阅读 · 0 评论 -
C语言在不引入第三变量下交换俩数
C语言在不引入第三变量下交换俩数第一种方法第二种方法原创 2020-03-18 06:47:23 · 341 阅读 · 0 评论 -
C语言scanf为啥有时候要输入两次(解析)
C语言scanf为啥有时候要输入两次(解析)我们先看一下这个例子:我们看上面的图片,一个scanf()一个格式控制符我们却输入了两次,这是因为我们在scanf()里加入了’ \n '。简单地说:如果在格式字符串(出现了空白字符(空格、\n、\t之类),那么 scanf() 会吃掉输入中所有接下来的空白字符。也就是说,在这段代码中 scanf 会等到输入中出现非空白字符才会返回。而scan...原创 2020-03-18 20:57:13 · 10685 阅读 · 6 评论 -
c语言scanf()函数的原理
scanf()函数的原理想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组。当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入。现在假设你的缓冲区里有:abcd\n1234\n (其中\n是回车符)执行:scanf("%s",name);的时候,由于scanf是读数据直到看见空白符(空白符:指空格符、制表符、回车符)就停止...转载 2020-03-18 07:58:04 · 2290 阅读 · 0 评论 -
C语言输出百分号
C语言输出百分号C语言中如何如何输出‘ % ’号呢?我们第一想到的是直接输出,我们来试一试看行不行。可以看到没有输出。接下来我们用转义字符试一试。可以看到也不行。其实要输出’ %’ 需要用两个%才可以这样就输出百分号了。...原创 2020-03-18 22:39:34 · 1838 阅读 · 0 评论 -
C语言sprintf 和 sscanf函数
C语言sprintf()和 sscanf()函数sprintf()函数上图链接:https://mp.weixin.qq.com/s?src=11×tamp=1584781288&ver=2229&signature=a*FFSdrBZqIw964Dht8MlpF81vJ-zC8aPMg-GnNARxQ1ZexFZFjq7J6NsVMGzBjn-kHNOWF...转载 2020-03-21 17:10:01 · 272 阅读 · 0 评论 -
c语言格式控制参数
c语言格式控制参数一、整数的格式控制参数(1)%d十进制有符号整数(int)(2)%md与%d相比用m限制了输出的数据位数。当数据的位数小于m时前面补空格当位数大于m时,数据按原数输出。例:(2)%ld十进制有符号长整数(long int或long)(3)%u十进制无符号整数(unsigned int)()%mu与%u相比用m限制了输出的数据位数。当数据的位数小于m时前...原创 2020-03-12 23:27:57 · 1966 阅读 · 0 评论 -
C语言的基本的输入输出
C语言的基本的输入输出prinf()函数 在头文件stdio.h中printf()函数是格式化输出函数,一般用于向标准输出设备按照规定格式输出信息。printf()函数的格式为:printf("<格式化字符串>",<参量表>);printf()函数的另一种函数格式为:int printf(const char *format, 参量表) 函数把输出写入到标准输...原创 2020-03-17 12:40:40 · 17793 阅读 · 0 评论 -
C语言运算符的优先级
C语言运算符的优先级原创 2020-03-21 07:33:03 · 212 阅读 · 0 评论