第四次c语言笔记

知识点
1.判断n是否为素数
k=floor(sqrt(n));
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i>k) 是;
else 不是;
2.对数组排序; 1 交换法排序 2 选择法排序
可用sort函数升序排序 需调用文件头#include
sort(数组名,数组名+第一个无效数组元素)
查找 1 线性查找 2 折半查找(需对数组进行排序)
又称二分查找,其中mid=(low+high)/2可能会过大,可优化为mid=low+(high-low)/2;
3.数组清零memset,首先要调用文件头,格式memset(数组名,被赋的值,sizeof(数组名)),其中,被赋的值只能是0过-1,若输入其他的值则错误。
4.书写习惯:低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
5.break语句
作用:跳出当前正在执行的循环。
注:当break语句在循环语句中的switch语句中时,只跳出switch语句,并不能跳出循环。
continue语句
作用:跳过循环体中剩余步骤,进入下一次循环。
go to语句
作用:go to语句可跳至标志后的任意语句。
注:由于该语句的随意性,使其运用时非常方便,但go to语句的使用可能会导致循环出现逻辑问题,一般不建议使用。
continue 语句:“继续”语句(结束本次循环,继续下一次循环);
return 语句:“返回”语句。
6.字符运用:
b.insert(a.begin(),a.end());
将字符数组a赋给b;
a.push_back©;
将字符c传入a中;
7.限制小数位数
比如限制3位小数
1.#include cout<<fixed<<setprecision(3)<<x;
2.printf("%0.3f\n",x;)
二丶遇到的问题及感慨
现在做的题,大都在逻辑思维上出难点,怎样用程序语言完整且严谨的将解法描述出来,尤其是细节方面不能有遗漏,这方面问题主要体现在像模仿游戏这种题目上,也是我不足的地方。
还有就是在程序的优化上,一个程序它可能是正确的,但太过复杂,绕弯路,就会造成超时,这时,就要优化程序,有时优化一个点,有时甚至要整体更换思路,就像求最大公约数和最小公倍数的那个题一样,常规思路很容易超时。
还有数字过大,数组元素多造成溢出的问题,这时可以定义全局常量,有时定义没问题在运用中也会出现溢出,比如mid=(low+high)/2可能会过大,可优化为mid=low+(high-low)/2;就是针对这种问题进行的优化。
对课本以外的知识的拓展也是重要的一点,有时巧妙的效果,可以很好的优化程序,简化思路,比如数组排序用的sort函数,相比于冒泡排序,交换法排序等就简便很多。
随着学习的深入,编程语言的特色也渐渐展现在我们面前,一如开始时老师说的,严谨,是非常重要的一点。对细节的描述,处理,往往决定一个程序能否ac,另外,对c语言的兴趣,热爱,也是很重要的,这个是支持我们自发学习的动力,是决定我们能否学会,学好c语言的重要因素。对c语言兴趣的培养,是非常有必要去关注的。
还要注意书写习惯,书写程序的习惯差不多有雏形了,比如循环变量随用随定义,等号两边的空格,锯齿形层次结构,函数的应用等等,这些都是很有必要的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值