![](https://img-blog.csdnimg.cn/3182c0785d4b4bfcbb08d53128ded0a3.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c语言(全)——比特鹏哥
c语言随堂笔记
课堂随笔
不要相信天道酬勤,但行前路无问西东。
展开
-
(c语言)typedef的用法
/由于unsigned int 的类型名太长,所以用typedef改变类型名,简化uint。typedef struct NODE //由于struct NODE的类型名太长,所以用typedef改变类型名,简化为node。//typedef可以改变类型名,只能改变类型名。原创 2023-09-03 10:30:35 · 276 阅读 · 0 评论 -
(c语言)双目操作符 三目操作符 逗号表达式
/如果a>b为真则返回a,为假则返回b。//逗号表达式的特点是:从左往右依次计算,整个表达式的结果是最后一个表达式的结果。if (a || b) //或,并集,只要其中一个为真。if (a && b) //且,交集,要两个都为真。//逗号表达式就是逗号隔开的一串表达式。原创 2023-09-03 10:33:28 · 46 阅读 · 0 评论 -
(c语言)static修饰局部变量,全局变量,自定义函数
/注:自定义函数是有外部链接属性的,若没有用static修饰,则可以用extern来声明外部变量。//注:全局变量是有外部链接属性的,若没有用static修饰,则可以用extern来声明外部变量。例:extern int a;//此段代码输出结果为十个2,因为a为局部变量,每次执行自定义函数test时,a都会被重新赋值为1;//(3)static修饰自定义函数时,该函数只在本文件内被访问,不能在其他文件被直接访问。//(2)static修饰全局变量时,该变量只在本文件内被访问,不能在其他文件被直接访问。原创 2023-09-03 14:05:32 · 70 阅读 · 0 评论 -
(c语言)a=b++;与a=++b的区别
/先执行赋值b=a,再执行a++//先执行c++,再执行赋值d=c。原创 2023-09-03 14:10:41 · 651 阅读 · 0 评论 -
(c语言)sizeof单目操作符的应用
/10 可计算出元素个数。//4 其中一个元素所占空间的大小。//4 计算一个整形数据所占的字节数。//40 整个数组所占的空间大小。//sizeof是单目操作符,不是函数。原创 2023-09-03 14:11:22 · 28 阅读 · 0 评论 -
(c语言)scanf函数缓冲区问题
*当我们输入完 1 2后按下回车键,输入缓冲区里存放着1 2 \n, 第一次scanf读走1给a,2给b,中间的空格丢弃,/*我们第一个scanf函数给a,b赋值1,2后,再用第二个函数给c赋值3结果输出的结果却只有a,b*/,发现缓冲区里还有\n,而且正好匹配% c,于是直接读走\n给c,故在输出c时读取的是\n*/printf("%d %d %c\n", a, b, c);// //这里用户输入一个字符。// //这里用户输入一个字符。原创 2023-09-03 14:13:35 · 532 阅读 · 0 评论 -
(c语言)gets() 和puts() 函数的应用
(1) gets() 可以接收空格、Tab键, 碰到回车键输入才结束;printf需要添加"\n'用来换行,而puts在 输出的时候会将字符串末尾的\0'自动换成\n'。/*1、gets() 的作用是从键盘上读取字符串,跟scanf() 相似, 但又有所不同。(2) gets() 和scanf() 都不能检测越界。2、puts() 的作用是 向显示屏输出字符串并换行。//gets() 和puts() 函数的应用。gets(字符串的首地址);puts(字符串的首地址);原创 2023-09-03 14:14:25 · 1989 阅读 · 0 评论 -
(c语言)素数判断的四种方法
include //方法三:在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数。#include //方法二:在2到n/2之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数。int main() // //因为我们只需要循环到i原创 2023-09-03 14:15:47 · 39576 阅读 · 12 评论 -
(c语言)自定义函数处理最大公约数与最小公倍数
/是一个输出直接调用fun1,//第二个调用fun2.//输出求的是最小公倍数,把两数相乘再除以最大公约数就得出答案。= 0)//注意判断的是n是否为0,不为0则不做while语句,scanf("%d%d", &m, &n);//输入两个数 m n。printf("最大公约数=%d 最小公倍数=%d",y,bei);//返回的是m的值,m为最大公约数。//方法一:普通方法。原创 2023-09-03 14:16:46 · 2523 阅读 · 0 评论 -
(c语言)冒泡排序法
j++) /*j控制相互比较的数据,(c-1-1)-i是为了让沉底的数不再比较,每一轮比较的数少一个*/i a[j + 1]) /*此处是为了挨个比较,找出较大的那个,存入a[j+1]*/a[j] = a[j + 1];原创 2023-09-03 14:18:11 · 48 阅读 · 0 评论 -
(c语言)递归训练——青蛙跳台阶
/当求青蛙跳到n阶的方法时,要将从n-1和n-2处跳到n阶的方法加起来。} //因为此题中要求青蛙一次只能跳一格或者两格,故只用考虑n-1和n-2处。#include //递归练习---青蛙跳台阶。printf("青蛙跳到第%d阶的方法有%d种",n,b);printf("请输入台阶数\n");原创 2023-09-03 14:19:10 · 64 阅读 · 0 评论 -
(c语言)递归训练——汉诺塔
void hanoi(int n, char A, char B, char C) //n为盘子数,第一个字符为拿取盘子的位置,第二个字符为跳过的位置,第三个字符为放置盘子的位置。//否则,将最大的盘子之上的部分看做一个整体(n-1),把这个整体先绕过C移到B处。//此处的A C指的是最近函数的位置,与上一层函数无关。原创 2023-09-03 14:19:45 · 64 阅读 · 0 评论 -
(c语言)求第n个斐波那契数
printf("第n个斐波那契数列为%.2lf",f);printf("第n个斐波那契数列为%.2lf",F);//(2)递归法 执行语句过于冗杂,容易栈溢出。printf("请输入n\n");//(1)迭代法 最优解。//斐波那契数列前两位都是1。//斐波那契数列前两位都是1。//求第n个斐波那契数列。原创 2023-09-03 14:20:34 · 89 阅读 · 0 评论 -
(c语言)二维数组的行列转换
main() /*二维数组的行距转换*/b[j][i] = a[i][j];{ /*分行*/printf("原始矩阵a为:\n");printf("原始矩阵b为:\n");原创 2023-09-03 14:21:20 · 206 阅读 · 0 评论 -
(c语言)define定义常量和宏
define NUM 100 //定义一个标识符NUM为常量100,NUM==100。#define ADD(x,y) ((x)+(y)) //用法与自定义函数相同。//可容纳100个元素的数组。//define定义标识符常量。//#define 定义宏。原创 2023-09-03 15:20:42 · 84 阅读 · 0 评论 -
(c语言)printf函数在执行时会有返回值,为输出元素的个数
int main()//12return 0;原创 2023-09-04 07:03:09 · 83 阅读 · 1 评论 -
(c语言)scanf函数与getchar函数的缓存区读取问题
'\n') //吸收scanf从缓冲区读取剩下的,清空缓存区。//因为往缓存区中输入数据需要按回车,故在scanf读取后会剩下一个\n,此时需要getchar来读取清空剩下的\n。if (ret =='Y') //此处要求是字符的ASCLL码值等于getchar的返回值时。//输入时除了Y/N,还有敲回车时输入的\0。//scanf函数读取缓存区中的数据然后输出,遇到空格(\0)和回车(\n)停止读取。printf("请确定密码(Y/N):>");原创 2023-09-04 07:03:31 · 113 阅读 · 1 评论 -
(c语言)while循环
/continue用于跳过本次循环,直接判断循环条件,进入下一次循环。//break用于跳出循环。原创 2023-09-04 07:03:50 · 185 阅读 · 1 评论 -
(c语言)Switch语句
/如果不加break,则会一直往下进行。#include //Switch语句用于多分支结构。switch (n) //n为几就进入相应的case。printf("输入错误");printf("星期一\n");printf("星期二\n");printf("星期三\n");printf("星期四\n");printf("星期五\n");printf("星期六\n");printf("星期天\n");原创 2023-09-04 07:04:12 · 71 阅读 · 1 评论 -
(c语言)if语句的应用
include //一般if语句后只能跟一个语句,若有多条语句则用{}构成语句块。printf("青少年\n");printf("青年\n");printf("中年\n");printf("壮年\n");printf("老年\n");printf("老寿星");原创 2023-09-04 07:04:35 · 75 阅读 · 1 评论 -
(c语言)结构体应用
struct student a1 = { "ycy",19,"男","17797638830" };//以typedef开头,分号后面的stu不是实例化。//输出方式二:指针解引用,使用前提为知道结构体变量。//实例化时:stu a={"ycy",19};//实例化时:stu a={"ycy",19};//输出方式三:箭头,结构体指针变量->成员名。//结构体类型名如果用不到的话可以为空。//而是被更改后的变量名。原创 2023-09-04 07:05:02 · 41 阅读 · 0 评论 -
(c语言)给定两个整数a、b,计算a除以b的整数商和余数
printf("整数商=%d 余数=%d",a/b,a%b);原创 2023-09-04 07:05:15 · 2570 阅读 · 0 评论 -
(c语言)指针的相关应用
/输出结果:32位--4,64位--8。//输出结果:32位--4,64位--8。//输出结果:32位--4,64位--8。//输出结果:32位--4,64位--8。//输出结果:32位--4,64位--8。//解地址操作符,通过p中存放的地址,找到p所指的对象,*p==a。原创 2023-09-04 07:05:36 · 146 阅读 · 0 评论 -
(c语言)for循环
/注:不可写为for(int i=0;i++),c编译器会报错。原创 2023-09-04 19:44:53 · 49 阅读 · 0 评论 -
(c语言)do while循环
/而do while函数的特点为先执行后判断,故i大于10后会再执行一遍语句块。输出结果为1 2 3 4 ,i++到5时因为i++的语句在判断语句之后,故i的值无法改变,陷入死循环。输出结果为 2 3 4 6 7 8 9 10 11,i++到5时跳过本次循环,输出结果为1 2 3 4,i++到5跳出循环。原创 2023-09-04 20:03:18 · 96 阅读 · 0 评论 -
(c语言)求n的阶乘
/初始化存储和的结果的变量不能为0,只能为1,不然sum*=i时sum的值永远为0;int i = 1;//求n的阶乘:1*2*.....n,设第一个数为1。int main() //方法一:do while循环。printf("n的阶乘为%d",sum);int main() //方法二:for循环。printf("n的阶乘为%d",sum);printf("请输入n\n");printf("请输入n\n");原创 2023-09-04 20:37:12 · 2058 阅读 · 0 评论 -
(c语言)求1!+2!+....n!
/利用每次循环后ref的数据遗留,在此基础上再乘一次就有了下一次阶乘的值。//ref存储每轮单个阶乘。//sum存储总阶乘的和。sum += ref;int main() //求1!printf("请输入n\n");原创 2023-09-05 09:07:54 · 835 阅读 · 0 评论 -
(c语言)二分法查找
/ //此语句若数值过大会导致数值越界,优化为mid=left+(right-left)/2;printf("要查找的值在第%d位",mid);printf("查询不到此值\n");printf("请输入需要查找的值\n");//二分法查找(折半查找) 优点:效率极高。原创 2023-09-05 19:39:26 · 38 阅读 · 0 评论 -
(c语言)strlen函数与sizeof函数使用的相同与不同
/10 用数组占内存的总数/其中一个元素所占内存的总数=数组中的元素个数。//40 此处数组中有十个元素,一个元素占4个字节,故共40字节。原创 2023-09-05 19:57:43 · 57 阅读 · 0 评论 -
(c语言)字符串的替换与Sleep函数的替换
/库函数,头文件为,效果为休眠1000毫秒(1秒)//系统函数,头文件,效果为清空屏幕。原创 2023-09-05 20:28:06 · 64 阅读 · 0 评论 -
(c语言)模拟用户登录情景和比较字符串函数strcmp的应用
if (strcmp(password,"abcdefg")==0) //strcmp函数用于比较字符串是否相同,头文件printf("密码输入超过三次,已锁死\n");//模拟用户登录情景,并且只能登录三次(三次错误则被退出程序)printf("登陆成功\n");printf("密码错误\n");printf("请输入密码:\n");//字符串不能用==比较,但字符可以。//假设密码为abcdefg。原创 2023-09-05 20:47:02 · 59 阅读 · 0 评论 -
(c语言)猜数字游戏
/时间戳time(),函数内的参数为指针,因为此题用不到参数,故填NULL(0)变为空指针。printf(" 猜数字游戏 \n");//值不同,生成的数也会不同,所以里面的值选用随时变化的时间戳,这也是随机数产生的原因。printf("猜对了,数字为%d",ret);printf("请选择:>");printf("结束游戏\n");printf("开始游戏\n");printf("猜小了\n");printf("猜大了\n");printf("请开始猜数字\n");原创 2023-09-06 09:45:00 · 146 阅读 · 0 评论 -
(c语言)goto语句
/goto 语句可用于跳出死循环,强制跳转到指定字符处。//注意,goto语句不可随意使用,尽可能少量的使用。//因为强制跳出有可能造成循环紊乱。//或用于跳出深层循环。//指定字符后加冒号。原创 2023-09-07 20:38:15 · 209 阅读 · 0 评论 -
(c语言)关机程序
printf("请注意,你的电脑在60秒关机,如果输入:我是猪,就取消关机\n");if (strcmp(arr, "我是猪") == 0)原创 2023-09-08 23:30:57 · 151 阅读 · 0 评论 -
用自定义函数交换数值
printf("请输入需要交换的值\n");//形参的变化影响不了实参,故只能用地址操作。//用自定义函数交换数值。原创 2023-09-10 15:51:56 · 53 阅读 · 0 评论 -
(c语言)素数的判断方法
n=n+2) //偶数不会是素数,所以只查奇数。#include //判断100~200里的素数。#include //素数:只能被1和自己整除的数。printf("素数的个数为%d",count);原创 2023-09-10 21:25:11 · 138 阅读 · 0 评论 -
(c语言)闰年计算方法
/闰年:(1)能被4整除且不能被100整除的是闰年(2)能被400整除的是闰年。printf("一共有%d个闰年",count);//若满足条件,返回1(真),不满足返回0(假)//判断1000~2000中的闰年。原创 2023-09-11 19:47:42 · 1401 阅读 · 0 评论 -
(c语言)链式访问
/(3)的效果是输出43,(2)接收并输出了(3)的返回值2,(1)接收并输出了(2)的返回值1。//printf函数的返回值为输出元素的个数。原创 2023-09-11 20:17:39 · 45 阅读 · 0 评论 -
(c语言)用递归实现逐步打印输入值的每一位
printf("请输入需要输出的值\n");//每次把小数点往前推一位,直到变成个位数。//用递归实现逐步打印输入值的每一位。原创 2023-09-11 20:34:32 · 41 阅读 · 0 评论 -
(c语言)用自定义函数模拟实现strlen函数
/指针右移一个数据的长度,比如在一个数组里,指针+1就是指向下一个数组元素。printf("字符串个数为%d",count);printf("请输入字符串\n");//用自定义函数模拟实现strlen函数。//传入字符串的首元素地址。原创 2023-09-11 21:05:36 · 61 阅读 · 0 评论