• C语言中简单的for循环和浮点型变量


    浮点型变量:常数中带有小数点的叫做浮点型

    以下用for循环写一个摄氏度和华氏度的转换的C程序 【见 http://www.linuxidc.com/Linux/2013-08/88513.htm 】

    [root@www.linuxidc.com]# cat forxh.c                                                   
    #include <stdio.h>                                                                            //宏定义
    main()
    {
        float i;                                                                                                //声明一个浮点型的变量i
        printf("华氏温度      摄氏温度 ");                                                  //先打印一个华式温度和摄氏温度的对应标题
        for (i = 0.0; i <= 300.0; i = i + 20.0) {                                            //开始for循环,先i=0,然后如果i<=300就执行循环体,i的值每次加20,直到i的值不满足i <= 300.0条件就推出
            printf("%3.1f = %3.1f ", i, (5.0 / 9.0) * (i - 32.0));                //直接调用打印函数,将表达式计算得结果后打印出来
        }
    }


    首先说for循环for后边的圆扩弧中是循环的参数和条件

    里边一共三段,由封号隔开,第一段

    i=0;

    首先初始化变量的值,进入循环,第二段

    i<=300;

    循环的执行条件,如果过这个条件满足,则循环继续,如果不满组,则退出,第三部分

    i = i + 20;

    以上20是温度的步长,每次增加20,所有的运算符都开以再次处使用例如:

    for (i = 512; i >=4; i = i / 2) {.....}


    从以上代码看,float是一种变量类型,声明的变量值必须如n.n,也就是带有小数点的常数,也就是俗称的小数。

    i是一个浮点型变量,它于int类型的值相运算,编译器自动会将int的值转换成float类型的值,例如一个浮点型的1.5和一个整形的3相加,编译器会自动将3转换成3.0,然后再和1.5相加

    所以此处笔者直接全部用浮点型的常量来代替了


    在for循环中的循环体只有一个printf函数:

    printf("%3.1f = %3.1f ", i, (5.0 / 9.0) * (i - 32.0)); 
    在C语言中按正常的运算顺序来计算print函数扩弧内的表达式,扩弧优先级最高,然后*号,最后printf将直接打印结果

    这样的程序书写方式就比:

    [root@www.linuxidc.com]# cat sheshidu.c
    #include <stdio.h>
    main()
    {
        float i, S;
        float F_max, F_min, buchang;
       
        F_min = 0;
        F_max = 300;
        buchang = 20;
       
        i = F_min;
        printf("华氏温度      摄氏温度 ");
        while ( i <= F_max) {
            S = 5 * ( i - 32 ) / 9;
            printf("%3.1f = %3.1f ", i, S);
            i = i + buchang;
        }
    }


    while循环的直观多了,易读性也高,变量也好组织!


    然后下边在提一点常量的定义,看如下代码

    [root@www.linuxidc.com]# cat fhcl.c
    #include <stdio.h>
    #define MAX_VLAN 300.0                    //符号常量定义
    #define MIN_VLAN 0.0                         
    #define BC_VLAN 20.0
    main()
    {
        float i;
        printf("华氏温度      摄氏温度 ");
        for (i = MIN_VLAN; i <= MAX_VLAN; i = i + BC_VLAN) {                //从符号常量取值进行循环
            printf("%3.1f = %3.1f ", i, (5.0 / 9.0) * (i - 32.0));
        }
    }

    第一个for循环里虽然东西少,但是用了不少“幻量”这种幻量会给以后读程序的人造成很大的困扰,谁也不知的它是个神码值,只知道那是一个常量

    如果用符号变量定义的话在开头定义好一个符号常量,然后下次读程序和改程序只要看这个个地方这个量前边的符号,即可知道它的含义,改成需只要改这一处即可,如果幻量的话就得逐个的查找替换了

    定义方式是:

    #define 符号  常量                //这种形式定义

    一般将符号常量的定义放在头文件的下边和程序的开头部分!

    相关阅读:

    C语言变长数组之剖析 http://www.linuxidc.com/Linux/2013-07/86997.htm

    C语言需要注意的问题 http://www.linuxidc.com/Linux/2013-05/84301.htm

    C语言位域的使用及其注意点 http://www.linuxidc.com/Linux/2013-07/87027.htm

    本来来自http://www.linuxidc.com/Linux/2013-08/88514.htm

  • 相关阅读:
    WEB网站类型系统中使用的OFFICE控件
    【架构】原型设计工具一览
    【云计算】mesos+marathon 服务发现、负载均衡、监控告警方案
    【自动部署该怎么做?】
    【OpenStack 虚拟机初始化user-data & Cloud-init】
    【数据可视化 参考资料】
    【RabbitMQ 参考资料】
    【CloudFoundry】架构、设计参考
    【OpenStack项目管理-CPU/内存/存储/网络 配额管理】
    【前端自动化构建 grunt、gulp、webpack】
  • 原文地址:https://www.cnblogs.com/xuyinghui/p/4880893.html
Copyright © 2020-2023  润新知