`
大碗干拌
  • 浏览: 46046 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

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\n", 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\n", sum);
return 0;
}
浮点数存储所带来的问题
float 和 double 都不能保证可以精确的存储一个小数
例如: float i = 99.9
printf("%f\n", i);
最终结果: 99.900002
--------------------------------------------------------------------
例子:有一个浮点型变量x,如何判断x的值是否为零?
if(0==x)是
else 不是
上面的这种写法不对
if(x和一个非常小的值的差得绝对值小于一个很小的值) 是
else 不是
思考:为什么循环更新的变量不能定义为浮点型?
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics