概念

2019/07/23

  1. 如果数组较大(大概106级别),则需要将其定义在主函数外面,否则会使程序异常退出

  2. memset 对数组元素赋相同的值. memset(数组名,值,sizeof(数组名))

    需要添加string,h头文件,建议初学者只用来赋0或-1,其它的用fill函数

  3. gets识别换行符\n作为输入结束(scanf完一个整数后,如果要使用gets,需要先用getchar接受整数后的换行符;

    puts输出一行字符串,并紧跟一个换行

  4. strlen()计算字符串长度(不算’\0’)

    strcmp

    strcpy

    strcat

  5. sscanf(str, "%d", &n); 把字符数组str中的内容以"%d"的格式,写到n中

    sprintf(str, "%d", n); 把n写到str中

    sscanf支持正则表达,如果配合正则表达式来处理字符串,很多题目都将迎刃而解(拓展)

  6. 对计算机来说,main函数返回0的意义在于告知系统程序正常终止

  7. &引用

  8. 构造函数

    struct studentInfo{
    	int id;
    	char gender;
    	//用以不初始化就定义结构体变量
    	studentInfo(){}
    	//只初始化gender
    	studentInfo(char _gender):gender(_gender) {}
    	//同时初始化id和gender
    	studentInfo(int _id,char _gender):id(_id),gender(_gender) {} 
    }; 
    
  9. 浮点数的比较 简单的比较可以忽视误差,但是一个变量经过误差较大的运算后,精度的损失就不可忽视

    • const double eps = 1e-8;

    • 等于== #define Equ(a,b) ((fabs((a)-(b)))<(eps))

    • 大于> #define More(a,b) (((a)-(b))>(eps))

    • 小于 #define Less(a,b) (((a)-(b))<(-eps))

    • 大于等于>= #define MoreEqu(a,b) (((a)-(b))>(-eps))

    • 小于等于<= #define More(a,b) (((a)-(b))<(eps))

  10. 圆周率 const double pie = acos(-1.0);

  11. 最后需要指出几点:
    ①由于精度问题,在经过大量运算后,可能一个变量中存储的0是个很小的负数,这时如果对其开根号sqrt,就会因不在定义域内而出错。同样的问题还出现在asin(x)当x存放+1、acos(x)当x存放-1时。这种情况需要用es使变量保证在定义域内。
    ②在某些由编译环境产生的原因下,本应为0.00的变量在输出时会变成-0.00。这个问题是编译环境本身的bug,只能把结果存放到字符串中,然后与0.00进行比较,如果比对成功,则加上eps来修正为0.00

  12. 对一般的OJ系统来说,一秒能承受的运算次数大概是107~108

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值