【学习笔记】算法竞赛:chapter 3 & 4 数组、字符串;函数、递归

来源:互联网 发布:逆战网络波动异常 编辑:程序博客网 时间:2024/06/04 19:23

第三章 数组和字符串

1、  比较大的数组尽量声明在main函数外。

2、  Memset(a,0,sizeof(a))的作用是把数组a清零,在string.h中定义。

3、  Memcpy(b,a,sizeof(int)*k )作用是从数组a复制k个元素到数组b,定义在string.h中。

 

第四章

1、如果函数在执行的过程中碰到了return语句,将直接退出这个函数,不去执行后面的语句。相反,如果在执行过程中始终没有return语句,则会返回一个不确定的值。

2、在算法竞赛中,请总让main函数返回0

3、在C语言中,定义结构体的方法为:“struct 结构体名称 { 域定义 }  ; ”注意花括号的后面还有一个分号。

4、建议把谓词(用来判断某事物是否具有某种特性的函数)命名成“is_xxx”的形式。它返回int值,非0表示真,0表示假。

5、函数的形参和在函数内声明的变量都是该函数的局部变量。无法访问其它函数的局部变量。局部变量的存储空间是临时分配的,函数执行完毕时,局部变量的空间将被释放,其中的值无法保留到下次使用。在函数外声明的变量是全局变量,它们可以被任何函数使用。操作全局变量有风险,应谨慎使用。

6、由于使用了调用栈,C语言支持递归。在C语言中,调用自己和调用其他函数并没有本质不同。

7、在运行时,程序会动态创建一个堆栈段,里面存放着调用栈,因此保存着函数的调用关系和局部变量。


把较大的数组放在main函数外,因为局部变量也是放在堆栈段中的。栈溢出不见得是递归调用太多,也可能是局部变量太大。只要总大小超过了允许的范围,就会产生栈溢出。




求孪生素数

#include <cstdio>int is_prime(int x){for(int i=2; i*i<=x;i++){if(x % i == 0)return 0;}return 1;}int main(){int m;scanf("%d",&m);for(int i=m-2;i>=3;i--){if(is_prime(i) && is_prime(i+2)){printf("%d %d\n",i ,i+2);break;}}return 0;}



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 天猫没收到货签收怎么办 收到的快递坏了怎么办 自寄的快递少了怎么办 邮的东西弄坏了怎么办 物流签收后发现货物损坏怎么办 发现客人损坏了酒店物品怎么办 东西坏了签收了怎么办 朋友圈贩卖三无产品你怎么办 付钱给微商没有保障怎么办 电镀锌钢带生锈怎么办 电机机油从空气滤芯里流出怎么办 把塑料皮套吃了怎么办 塑料框眼镜有点小了怎么办 出口纸箱打了钉怎么办 买房子交款单据丢了怎么办 买房子所有单据丢失怎么办 车险单据都丢了怎么办 真空包装的东西里面有空气怎么办 发货物忘记写唛头了怎么办 Word文档撤销按钮删除了怎么办 ai保存时未响应怎么办 ai还没保存卡了怎么办 ai卡住了没保存怎么办 屁股沟有硬块红肿怎么办 卧室床选太大了怎么办 画板的笔尖掉了怎么办 宜家水壶盖子有水怎么办 背滤鱼缸除油膜怎么办 书多了没地方放怎么办 学生在教室内丢手机怎么办 新车尾箱坏了怎么办 放书的箱子烂了怎么办 车钥匙锁后备箱里怎么办 布的收纳箱有味怎么办 车漆清漆层掉了怎么办 副驾驶储物箱卡子断了怎么办 玛莎拉蒂车门打不开怎么办 新买的水杯漏水怎么办 泰迪小狗掉毛怎么办 手机jlc调用接口状态异常怎么办 进门和厕所对着怎么办