C语言叨逼叨之一些注意事项

自五月中旬本菜鸡进行转专业补课:计算导论与程序设计(C语言)这门课已经有三个月了,虽然算法还没钻研多深,不过结合一些经验总结一些注意事项,估计没有兄贵看吧2333.

1.do-while和while的使用,比如在你逐个输入字符,直到#出现为止

2.sizeof来获取数据类型所占的字节数,比如int类型在不同机器下所占的字节就不一样,虽然大部分都是4个字节

比如哈,看看ptr=(int*)malloc(n*sizeof(int)),这个sizeof(int)就最好别被4代替,目的也是为了提高代码移植性

3.很重要的一点,==和=分别是什么,经常刷oj笔误就会出这个问题,你还不容易看出来

4.接着上面那条,判断整型数据和浮点型不都用==,判断浮点型用abs(差)和0.00001这种比较

5.小心溢出,越界,其实现在内存已经不值钱了(误)

6.scanf()输入数据格式与格式控制串需要一致

7.这个地方,我被机考坑了好几次,但是考试的时候都没长记性,哎:

看下面这一部分代码:

printf(“输入你的年龄”);scanf(“%d”,&age);printf(“age is %d\n”,age);

printf(“输入你的性别”);scanf(“%c”,&sex);printf(“sex is %c\n”,sex);

当你输入18,然后开开心心按下回车的时候,其实,你这个回车会被%c给读进去,所以有时候这一类的问题经常有bug,这时候我们就需要在第一行末尾加一句getchar()来将缓冲区的回车符号读入,避免被%c读进去

当然,你也可以用fflush(stdin)用于清空键盘输入缓冲区。

8.记住,字符串是以\0结尾的,做一些oj题记住这一点,否则会产生越界访问。

9.记得使用指针的时候,一旦有了malloc(某个空间),使用完毕后,一定要把指针free掉,并把这个指针置为NULL,否则每次执行一次程序,就会丢失一块内存,导致内存泄漏

10.多个源文件、头文件的时候得注意一些细节,比如你可能需要宏定义锁

11.C语言中的math.h头文件中有对数函数,原型为:
1.double log(double x) 求的是lnx(log(e)(x))
2.double log10(double x) 求log(10)(x)
求一般的话,假如以a为底的b的对数(log(a)(b)),利用换底公式转化为lg(b)/lg(a)或ln(b)/ln(a) 进行求解

12.二进制换十进制递归方法,n==0/1返回n本身,否则返回n%10+convert(n/10)*2

13.有时候用对数解决问题会非常的骚,节省很多代码量,比如在求一个数的二进制表示有多少位,方法很多,但是。。

14.闰年的判断:(year%4==0&&year%100!=0)||year%400==0,并非四年就一闰

15.文件用完就fclose了吧。

先写这么多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值