自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 深入浅出学会函数(下)

一般我们在使用函数的时候,直接将函数写出来就使用了。比如:我们写一个函数判断是否为闰年int is_leap_year(int y) //函数的定义return 1;if (is_leap_year(y) == 1) //函数的调用printf("%d是闰年", y);elseprintf("%d不是闰年", y);return 0;上面代码中前7行的部分是函数的定义,第13行时函数的调用。

2025-04-24 23:43:45 1736 5

原创 深入浅出学会函数(上)

了解了库函数,我们的关注度应该聚焦到自定义函数上,自定义函数其实更加重要,也能给程序员写代码更多的创造性。

2025-04-24 14:10:16 834 5

原创 二维数组的用法

你会1,2,3,4...这样猜吗?其实我们只要能够按照一定的规律产生所有的行和列的数字就行,以上一段代码中的arr数组为例,行的选择范围是0~2,列的取值范围是0~4,所以我们可以借助循环实现生成所有的下标。从输出的结果来看,每一行内部的每个元素都是相邻的,地址之间差4个字节,跨行位置处的两个元素(如:arr[0][4]和arr[1][0])之间也是差4个字节,所以。图中最左侧的数字表示行号,最上面的数字表示列号,都是从0开始的,比如,我们说:第2行,第4列,快速就能定位出7。那二维数组如何初始化呢?

2025-04-21 21:59:06 804 4

原创 一维数组的用法

从输出的结果我们分析,数组随着下标的增长,地址是由小到大变化的,并且我们发现每两个相邻的元素之间相差4(因为一个整型是4个字节),所以我们得出结论:数组在内存中是连续存放的。我们又知道数组中的所有元素的类型都是相同的,那只要计算出一个元素所占字节的个数,数组的元素个数就能算出来。以后再代码中需要数组元素个数的地方就不用固定写死了,使用上面的计算,不管数组怎么变化,计算出的大小也随着变化了。有了前面的知识,我们其实使用数组基本没有什么障碍了,如果我们要深入了解数组,我们最好能了解一下数组在内存中的存储。

2025-04-17 20:58:23 1687 5

原创 深入浅出学会猜数字小游戏

time函数会返回当前的日历时间,其实返回的是1970年1月1日0分0秒到现在程序运行时间之间的差值,单位是秒,返回的类型是time_t类型的,time_t类型本质上其实就是32位或者64位的整型类型。如果我们再深入的了解一下,我们就不难发现,其实rand函数生成的随机数是伪随机的,伪随机数不是真正的随机数,是通过某种算法生成的随机数,真正的随机数是无法预测下一个值是多少的。我们可以看到虽然一次运行中产生的5个数字是相对随机的,但是经过多次运行,发现下一次运行程序生成的结果和上次一模一样,这就说明有问题。

2025-04-17 15:12:39 667 2

原创 深入浅出学会函数递归(详细版)

这里我们看到了,在计算第40个斐波那契数的时候,使用递归方式,第3个斐波那契数就被重复了39088169次,这些计算是非常冗余的,所以斐波那契数的计算,使用递归是非常不明智的,我们就得想迭代的方式解决。函数不返回,函数对应的栈帧的空间就一直占用,所以如果函数调用中存在递归调用的话,每一次递归函数调用都会开辟属于自己的栈帧空间,直到函数递归不再继续,开始回归,才会逐层释放栈帧空间。其实递归程序会不断的展开,在展开的过程,我们很容易就能发现,在递归的过程中会有重复计算,而且递归层次越深,冗余计算就会越多。

2025-04-16 12:19:10 2030 3

原创 关机程序(整蛊小程序)

今天跟大家分享一个有意思的代码1.程序运行起来的时候,就开始倒计时60s关机2.但是如果你能输入:我是猪,则取消关机。

2025-04-12 13:19:01 304

原创 goto语句的用法

goto语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是goto语句也不是一无是处,在多层循环的代码中,如果想要快速跳出,使用goto语句就非常的方便了。本来for循环想提前退出得使用break,一个break只能跳出一层for循环,如果3层循环嵌套就得使用3个break才能跳出循环,所以在这种情况下我们使用goto语句就会更加快捷。

2025-04-12 11:43:21 141 1

原创 循环的嵌套

前面学习了三种循环 while,do while,for,这三种循环往往嵌套在一起才能更好的解决问题,就是我们所说的:循环嵌套,这里我们就看一个例子。

2025-04-07 16:55:35 287

原创 break和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。在C语言中提供了break和continue两个关键字,就是应用到循环中的。break的作用是:用于永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。continue的作用是:跳过本次循环中continue后面的代码,在for循环和while循环中有所差异的。

2025-04-03 14:49:51 561

原创 do-while循环(包含例题)

while和for这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,执行循环语句,如果不满足就跳出循环;而do while循环则是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。在do while循环中先执行图上的“语句”,执行完语句,再去执行“判断表达式”,判断表达式的结果!这里并非必须使用do while语句,但是这个代码比较适合使用 do while循环,因为n即使为0,也是1位数,要统计位数的。

2025-04-03 14:14:29 437

原创 for循环语句的用法(包含例题)

首先执行表达式1 初始化循环变量,接下来就是执行表达式2的判断部分,表达式2 的结果如果==0,则循环结束;=0则执行循环语句,循环语句执行完后,再去执行表达式3 ,调整循环变量,然后再去表达式2 的地方执行判断,表达式2 的结果是否为0,决定循环是否继续。for和while在实现循环的过程中都有初始化,判断,调整这三个部分,但是for循环的三个部分非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就比较分散,所以从形式上for循环要更优一些。计算1~100之间3的倍数的数字之和。

2025-04-02 22:01:32 320

原创 while语句的用法(包含例题)

首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。

2025-04-02 21:17:33 307

原创 if语句的用法(包含例题)

如果任意一个整数,我们要清楚的判断是奇数还是偶数怎么表示呢?默认情况下,if和else的后面只能跟一条语句,如果要跟多条语句,可以使用大括号。如果有多个if和else,可以记住这样一条规则,else总是跟最接近的if匹配。也就是表达式的结果如果为0,则语句不执行,表达式的结果如果不为0,则语句执行。很多初学者,上来一判断a是0,不等于1,那就执行else子句,打印haha。表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。:输入一个整数,判断是否为奇数,如果是奇数打印奇数,否则打印偶数。

2025-03-30 21:02:18 657 1

原创 Switch语句的用法(包含例题)

Switch语句其实是一种特殊的if else结构,适用于判断条件存在多个结果的情况。它把多重else if改为更清晰 可读性更好的形式。

2025-03-30 19:12:53 538

原创 关于一个大学生对于学习C语言的目标和期望

关于一个大学生对于学习C语言的目标和期望

2024-04-03 11:15:13 283

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除