- 博客(42)
- 收藏
- 关注
原创 c小白勇闯结构体!!!!
ps:浮点数在内存中不能精确保存int high;int main()struct jiegt p1={"张三","男",155};//结构体初始化struct St p2={{"李四","女",166},666};//结构体嵌套初始化return 0;张三 男 155李四 女 166 666请按任意键继续. . .
2023-09-08 11:53:49 343 1
原创 c语言之指针的学习
如果是int*型的指针,解引用访问4个字节;如果是char*型的指针,解引用访问1个字节(指针的类型决定指针变量访问的字节数或者说+1时跳过的字节数)(平时口语常说的指针,通常指的是指针变量,是用来存放内存地址的变量)(指针是内存中一个最小单元的编号,也就是地址)指针类型决了指针在被解引用的时候访问几个字节。概念:(指针指向的位置时不可知的)3.避免返回局部变量的地址。关于指针的大小的解释。4.指针指向NULL。5.检测指针的有效性。
2023-08-31 23:48:38 365
原创 青蛙跳台阶问题
本题运用的递归的写法,由分析可知,青蛙一次只能走1或2个台阶,且有且仅有1中走法,n=2时,有两种走法,假设n=10,则走法共有在当前基础上进行的n-1+n-2种走法相加。题目:青蛙上楼需要走n个台阶,一次可以跳1个或2个台阶,那它一共有多少中走法。
2023-08-21 16:12:07 73
原创 利用c语言完成游戏三子棋
5.电脑下棋,函数rand可以生成随机数,我们给其模上三,可以产生0---2之间的数,用于模拟电脑下棋,其头文件为#include6。3.在玩家或者电脑下棋之后为了更加方便的下棋,我们决定在每次下棋之后都打印一次棋盘。4.建立一个函数,完成玩家下棋这一个步骤,我们规定玩家用'*',电脑用'#'在此之前我们假设建立一个3*3大小的棋盘,并初始化一个对应的数组。.初始化棋盘,我们先构建一个棋盘,并且将棋盘的值保存在数组中。为了代码的可阅读性更高,我们可以给出提示的函数。
2023-08-06 23:47:15 43
原创 关于数组名的理解
000000000062FE14//整个数组值nnnnnnnnnnnnnnnnnnn。当二维数组的数组名表示首元素的地址时,表示的时a[0][]这一行的数组的地址。ps:二维数组行的计算方法。请按任意键继续. . .二维数组列的计算方法。
2023-08-01 23:45:43 48
原创 c语言之利用递归实现汉诺塔步数的计算
三个盘子要移动7步,这是固定的。当四个盘子时,它先要把最上面的三个盘子移动到另外一根针上(这时移动了7步),然后把第四个盘子移动到另一根针上(这时共移动了8步,三个盘子的7步加上第四个盘子的1步),最后再把那三个盘子移动到第四个盘子上面(又是7步)。由此我们可以返回的函数值为,当前盘子数-1时的移动步数+最后当前盘子移动的一步+当前盘子数-1时的移动步数,即两倍的当前盘子数-1时的移动步数+1。五个盘子也是同样,我们知道了四个盘子的移动步数是15步,那么5个盘子就是15+1+15等于31步。
2023-07-28 23:37:56 219
原创 c语言利用函数实现辗转相除法
int main()int a,b;return 0;int r=1;r=m%n;while(r!=0)m=n;n=r;r=m%n;return n;
2023-07-27 23:34:02 75
原创 c语言之利用递归,在不创建临时变量的条件下,计算字符串的长度
int main()return 0;if(*p!='\0')elsereturn 1;
2023-07-27 22:54:05 59
原创 函数定义在main()函数之后要对函数进行声明
当函数定义在main()函数之后时要在main()函数之前对自定义函数进行声明。printf("哈哈哈\n");printf("哈哈哈\n");只需要对函数进行声明即可解决问题。以下代码会在运行中报错。
2023-07-25 16:14:42 191
原创 c语言初阶之数组作为实参时在函数中计算数组的长度
通过数组p[]访问的还是数组a[],数组作为实参时,对应的形参只是接收的实参首元素的地址,此时的数组p[]的本质上是一个指针变量(数组在内存中连续存放)
2023-07-23 23:43:40 127
原创 编写一个函数,每调用一次都记录下,并输出调用次数
int hanshu(int *p)//利用传址对实参进行修改,此时形参相当于指针变量,其内存储的是实参的地址,通过解引用符号间接修改。
2023-07-23 22:56:12 273
原创 震惊!!!!在函数中对形参进行修改实参竟然......
由程序的运行结果可知形参的改变不会对实参产生影响,及形参与实参是完全不同的变量,或者说形参是实参的临时拷贝;若想要在函数中对实参进行修改,可以通过传址的方式将实参的地址传给形参,程序修改如下。可以看到,通过传址的方式可以在函数中对实参进行修改。
2023-07-22 00:01:58 97 1
原创 c语言初阶练习之库函数strcmp
编写代码,模拟用户登录的情景,并且只能登陆三(只能输入三次密码,如果密码正确则提示登陆成功,如果三次均输入错误,则登录失)
2023-07-20 23:11:39 34 1
原创 用c语言演示多个字符向中间汇聚
若想让程序一步一步慢慢的输出可以在程序中引入库函数Sleep()改进的程序如上,可以实现程序一步一步的进行过程。编写代码,演示多个字符从两端移动,向中间汇聚。
2023-07-20 22:59:06 47 1
原创 c语言实现二分法
printf("要找的数组下标为:%d%d\n",a[mid]);//输入要找的数的值。本题只是简单的利用二分法来求具体数的数组下标。
2023-07-19 23:17:09 138
原创 c语言初阶练习
要求输入学号,三科科目的成绩,数据之间由;间隔int main()int id=0;scanf("%d;%f;%f;return 0;123123123;55;55;
2023-07-17 23:42:51 38 1
原创 关于与getchar()与putchar()
将程序优化一下,可以在scanf语句后添加一个while语句条件为(ch=getchat!=\n),可将多个\n祛除也能应对含空格的值。本程序只是谈论getchar函数的取值方式,并没有要求密码正确。由于scan需要敲下回车后才被赋值,且由用户输入的值被赋给了ret,getchar()只能取走剩余的\n,因此程序的结果固定为no。若在分支程序前再加上一个getchat函数可将\n取走。
2023-07-17 00:02:52 35 1
原创 while循环与continue语句与break语句
由结果可知程序运行至continue时跳过了此后的程序,由于i的值为5且小于十,故出现死循环。若将continnu换成break,运行结果不变,但break是直接跳出while循环。
2023-07-16 23:27:28 98 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人