c语言学习笔记(4)——流程控制

一、什么是流程控制
程序代码执行的顺序
流程控制分类
顺序执行
选择执行
定义
有选择的执行某些代码
分类
if
switch
循环执行
定义
某些代码会被重复执行
分类
for
while
do while
break和continue
--------------------------------------------------------------------
# include <stdio.h>


int main(void){
int i;
float sum = 0;
for (i=1; i<=100; ++i){
sum = sum + 1 / i;
}
printf("结果是%f ", sum);
return 0;
}
输出的结果是:结果是1.000000
将 sum = sum + 1 / i;改为
   sum = sum + 1 / (float)(i);
或 sum = sum + 1.0 / i;
或 sum = sum + 1 / (i + 0.0);
输出的结果是:结果是5.187378


不能这样写:
# include <stdio.h>


int main(){
float i;
float sum = 0;
for (i=1.0; i<=100; ++i){
sum = sum + 1/i;
}
printf("sum = %f ", sum);
return 0;
}
浮点数存储所带来的问题
float 和 double 都不能保证可以精确的存储一个小数
例如: float  i = 99.9
  printf("%f ", i);
  最终结果: 99.900002
--------------------------------------------------------------------
例子:有一个浮点型变量x,如何判断x的值是否为零?
if(0==x)是
else 不是
上面的这种写法不对
if(x和一个非常小的值的差得绝对值小于一个很小的值) 是 
else 不是
 思考:为什么循环更新的变量不能定义为浮点型?
原文地址:https://www.cnblogs.com/lanzhi/p/6469936.html