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

以下用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("华氏温度      摄氏温度\n");                                                  //先打印一个华式温度和摄氏温度的对应标题
 
  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\t=\t%3.1f\n", 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\t=\t%3.1f\n", 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("华氏温度      摄氏温度\n");
    while ( i <= F_max) {
        S = 5 * ( i - 32 ) / 9;
        printf("%3.1f\t=\t%3.1f\n", 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("华氏温度      摄氏温度\n");
    for (i = MIN_VLAN; i <= MAX_VLAN; i = i + BC_VLAN) {                //从符号常量取值进行循环
        printf("%3.1f\t=\t%3.1f\n", 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

C语言中简单的for循环和浮点型变量的更多相关文章

  1. C语言中不同类型的循环(Different types of loops in C)

    C语言中有三种类型的循环:for,while,do-while. while循环先判断循环条件. while (condition) { //gets executed after condition ...

  2. JAVA中简单的for循环竟有这么多坑,你踩过吗

    JAVA中简单的for循环竟有这么多坑,你踩过吗 实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式 ...

  3. C语言中字符型,整数型,浮点型在内存中如何存储

    ···void main() { unsigned char a = 97; printf("%p",&a); printf("%c,%d\n", a, ...

  4. C语言中结构体定义实际上相当于变量入栈

    struct context { int edi; int esi; int ebx; int ebp; int eip;}; 对应的入栈顺序是 pushl %esp pushl %eip pushl ...

  5. 新手入门C语言第八章:C循环

    一.C 循环 有的时候,我们可能需要多次执行同一块代码.一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推.编程语言提供了更为复杂执行路径的多种控制结构.循环语句允许 ...

  6. 浅析c语言中的变量(局部变量,外部变量,静态变量,寄存器变量)[转]

    c语言中变量分为四类,分别是 1.auto   自动变量 2.static   静态存贮分配变量(又分为内部静态和外部静态) 3.extern  全程变量(用于外部变量说明) 4.register   ...

  7. Go语言【第三篇】:Go变量和常量

    Go语言变量 变量来源于数学,是计算机语言中能存储计算结果或能表示值抽象概念.变量可以通过变量名访问.Go语言变量名由字母.数字.下划线组成,其中首字母不能为数字,声明变量的一般形式是使用var关键字 ...

  8. C语言写猜拳游戏中遇到的函数循环小问题

    各位可能在初学C语言的时候都有写过猜拳游戏.但在写猜拳的函数时,避免不了会使用循环. 当函数被套在一个循环中的时候,你的计分变量可能就会被重置为函数体里的初始值.那么怎么解决这个问题? 其实很简单,你 ...

  9. c语言中函数的简单介绍

    c语言中函数的介绍: 函数,简单的说就是代码的打包.存放在一个地方,当需要的时候调用. 函数分类: 1.无参无返回值函数 void func() 2.无参有返回值函数  int func() 3.有参 ...

随机推荐

  1. ReactiveX 学习笔记(3)转换数据流

    Transforming Observables 本文的主题为转换 Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操作符(二)Transform ...

  2. JAVA 泛型的参数的传递示意图

    泛型的两种参数传递方式

  3. Ajax 学习 第三篇

    1.什么是json 第一种方法 第二种方法 比较evar and jsondata 任何时候使用EVAR要特别小心,他不会管输入对象的类型 JSONLint可以在线校验代码的正确性 改写代码

  4. maven 创建war类型项目

    1. 创建maven project时选择packaging为war 2. 在webapp文件夹下新建META-INF和WEB-INF/web.xml 3. 在pom.xml中添加web项目需要的ja ...

  5. rsync sersync搭建

    目标服务器 192.168.100.47 源服务器    192.168.100.46 目标服务器配置 [root@node01 nodejs]# cat /etc/rsyncd.conf #日志文件 ...

  6. hive 排序 分组计数后排序 几种不同函数的效果

    [转至:http://blackproof.iteye.com/blog/2164260] 总结: 三个分析函数都是按照col1分组内从1开始排序 (假设4个数,第2和第3个数据相同)    row_ ...

  7. python opencv3 给图片加中文

    转自:https://www.cnblogs.com/arkenstone/p/6961453.html opencv3.2将中文输出到图片上 opencv自带的putText函数无法输出utf8类型 ...

  8. redis异常Redis:java.util.NoSuchElementException: Unable to validate object at

    前两天项目上线的时候遇到了redis的一个问题,在测试环境的时候项目运行正常,项目一上线redis便开始抛异常. redis.clients.jedis.exceptions.JedisConnect ...

  9. go语言指针判等

    https://blog.csdn.net/qq_26981997/article/details/52608081

  10. jquery 滚动条位置的

    $('#fixedHead').width()//div的宽度 $('#fixedHead')[0].scrollWidth//滚动条的宽度 两者的差为滚动条的宽度 var b1=$("#d ...