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

以下用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. 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。

    原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...

  2. 四则运算之Right-BICEP单元测试

    一. 这篇博客要对上次实现的四则运算进行单元测试,一是检查上次的程序的实现情况,二是巩固单元测试的相关知识.本次进行单元测试用的是Riget-BICEP方法. Riget-BICEP方法: 1.Rig ...

  3. js高级-数组的map foreach 方法

    函数式编程  sort map forEach  ....  jQuery() 数组的sort 方法 传入一个匿名函数 就是函数式编程 ie9 以上的浏览器支持 map 方法 map方法 返回一个新数 ...

  4. linux下arm汇编的常用指令解析

    1. ldr 和 str : (1) ldr 作为指令,叫做寄存器加载指令.将内存中的值加载到寄存器中. (2) ldr 作为伪指令,实现一个32位常数或地址值加载到寄存器中.后面加载的常量或地址值标 ...

  5. linux配置虚拟域名

    linux环境下面配置虚拟主机域名 第一步:在root目录下面(即根目录)ls(查看文件)cd进入etc目录find hosts文件vi hosts 打开hosts文件并进行编辑在打开的文件最下面添加 ...

  6. OpenCV 调用双摄像头

    #include <opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespace std ...

  7. 用python来分割图片

    程序思路: 此次程序主要是利用PIL(Python Image Libraty)这库,来进行图片的处理.PIL是一个功能非常强大的python图像处理标准库,但由于PIL只支持python2.7.如今 ...

  8. com.android.dx.command.Main with arguments

    Error:Execution failed for task ':jingyeyun:transformClassesWithDexForDebug'.> com.android.build. ...

  9. springcloud eureka.instance

    1.在springcloud中服务的 Instance ID 默认值是: ${spring.cloud.client.hostname}:${spring.application.name}:${sp ...

  10. Spring Boot application.yml bootstrap.yml

    yml与properties 其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在. 推荐使用yml,更简洁. bootstrap与appli ...