关于做题遇到的新知识点的分享

本文介绍了如何利用除号控制随机数范围,模运算在匹配switch语句中的应用,以及ASCII数字与字符的转换。还涵盖了动态数组的malloc函数,整形数组传参,以及链表的创建(头插法和尾插法)等实用IT技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.妙用除号(%)与模(/):在一些生成随机数的场景下,可以用除号来控制生成的随机数的范围,例如你创建一个一维数组(arr[10]={1,2,3,4,5,6,7,8,9,10};)。但是你想随即打印下标在0到9范围内的数组,但是rand()与srand((unsigned int)time)函数生成的随机数范围在0到32767。

可以采用除号的方式来控制一个随机数的范围,例如让任意一个随机数除(%10),12438%10=8

,25463%10=3。通过除10的方式把随机数控制在了下标0---9的范围内,希望大家能应用到更多的日常的生活实践中。

模运算则是针对“取大头”运算,例如你想让一个区间范围内的数匹配一个switch下的case语句时,可以采用模运算。例如92/10==98/10==100/10,很好的将这个区间匹配到一个情况语句下,并且可以用一个等级来代替这些区间的描述,例如把成绩在60到69的规定为合格;希望大家能应用到更多的日常的生活实践中。

2.ASCII数字与字符的转换:

所谓的数字与字符的转换其实质是打印时的格式不同而已:

1:输入的是字符类型(%c)输出的是整形(%d)vs会自主运行,这其中的细节不需要我们关注

2:输入的是整形(%d)输出的是字符类型(%c)也可以得到想要的结果。

由上知,无论我们输入的什么,我们想要他输出的是字符,我们输入的数字在系统的加工下会自动转化为我们想要的字符,反之亦然。

由此在大小写转换的应用中我们就可以使用这种方法:

按我的粗糙的知识基础得到的体会是,我不管你输入的是什么?是字符或者数字,我想要你输出字符你就是字符,想要你输出数字你就是数字,一切以我的意志为转移,如果以上体会有偏差请大佬指正。

根号函数:pow(i,0.5);头文件 #include <math.h>

海伦公式:计算三角形面积,p=(a+b+c)/2;  s=根号下{p*(p-a)(p-b)(p-c)};

动态申请数组:malloc函数 头文件:#include <stdlib.h>;    int*a=(int*)malloc(n*sizeof(int));

整形数组传参:

由上图,定义一个数组后,使用函数时,在调用时用指针接受数组中的数据。

创建链表:1:创建头节点;2:在循环的条件下,将创建的结点(创建结点时要分配内存空间)与先前创建的结点连接起来(两种方法:头插法与尾插法)。

1:创建头节点即申请内存空间即调用molloc函数;在调用molloc函数申请内存空间之前,要先定义结构体:

在使用结构体时大括号的后面一定要分号;

调用molloc函数:

2:创建结点(头插法):

顾名思义,将新结点插入当前链表的表头(每创建一个结点,就插入头节点的后面),所以读入数据的顺序与生成单链表的元素顺序是相反的。

尾插法:

顾名思义,将该结点插入当前链表的链尾,新插入结点放在上一次插入结点的后面(因为插入需要知道上一个结点的位置,因此尾插法需要创建一个尾指针*r)。即读入数据的顺序与生成单链表的元素顺序是相同的。

尾插法执行后,每申请一个地址要对其初始化,否则无法顺序输出各值。尾指针不需要创建空间,但要声明一下:struct linklist*r。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值