zoukankan      html  css  js  c++  java
  • 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 不是
     思考:为什么循环更新的变量不能定义为浮点型?
  • 相关阅读:
    Unity3d通用工具类之生成文件的MD5
    Unity3d-Socket之龙一编年史network.dll分析(2)-> CNetLogger
    Unity3d-Socket之龙一编年史network.dll分析(1)
    Unity3d设计模式之单例模式
    c#中的??运算符
    java 字节流
    java File文件操作
    java 线程池和lamda表达式
    java 线程状态(通信/等待/唤醒)
    java 线程安全
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469936.html
Copyright © 2011-2022 走看看