枚举法
知道的条件越多,解决问题越容易
二分法减小了时间复杂度
操作系统、嵌入式系统,c语言是唯一的选择
20世纪80年代到现在、新出来的这些语言、他们的语法的差异很小、C like
当我们在说一个语言能力很强、主要往往并不是由于语言本身的特点所决定的、
而是由于这个语言、别人为他写的库、
比如说对于面相对象语言、那么就是类库
对于像c语言这样的语言来说、那么就是函数库
这些库、有针对各种应用的库、他在这些应用上面 能够做非常强的事情、很难做的一件事情 可能在这个语言里面、只要调用这个库里的一个函数、或者在这个库里面、使用他的类去做一个事情 OK、很大的一个工作就解决了
那么如果这个语言有、针对你要做的那个事情的库、也许你用它来写程序就会变得很容易
所以不是由于语言本身、而是由于语言带着的库
另外当然还有传统
比如说我们通常
这种问题用这种语言来解决
于是呢、由于这种问题要写的软件比较多
那么这个语言的应用
他的这个比例就上去了
phyton是因为有内置酷库,虽然很简洁但是限制太多了,没有C自由
指针间接
指针是c语言的灵魂
受到pL/1的影响、励志去充分表达机器指令
win10 Dev-C++ 5.11
C语言是一种有类型的语言、 变量必须在使用前做一次定义或声明、变量必须有确定的数据类型。不能改变变量的类型。
C99允许在任何地方定义变量
scanf("%d",&price); (指针)
printf()
formatted格式化的输入/输出
%f,float才能输入小数,%d就是只能识别整数
printf("%d\n",14/3) =4
写程序要考虑两件事:
1.有什么样的数据、要读进来、保存到内存、变量
2.计算、
前置和后置是不一样的,++a先自增再赋值,而a++是先赋值再自增
当年 PDT11上有两条特殊的机器指令
inc increase dec decrease
级联的if-else if
多路分支
case相当于汇编里面的程序跳转标记
就像是四扇门,if是门在门后面,必须一扇一扇的打开,而switch case则是并列的几扇门
程序是步骤、不是关系、不是说明
2^0=1 log2(1)=0
x=1, --> ret=0
x=2, --> ret=1
随机数
设isPrime=1 ,因为要证伪
每5个换行、 \t 对齐、
破坏了程序的结构性
只在 跳出多重循环时用goto
double是双精度浮点型,float是单精度浮点型。个人建议直接用double就可以了,float的功能double都具备,只是float相比double省一些存储空间。所以全用double就可以了
float浮点数其实在dev c++中用的其实还是双精度,除非是这样去定义float a=1.2f
交错级数收敛/ 莱布尼茨收敛
C语言中幂函数是pow(底数,指数);不过要用<math.h>库
求最大公约数:辗转相除法