求以r为半径的圆周长l和圆面积s,再求以r为半径的圆球体积v。

#include<stdio.h>                                               在程序运行过程中其值

#define PI 3.1415926                                           保持不变的量程为常量  

int main()                                                           Pl-符号常量

{ int r=4;——字面常量

  float l,s,v;

  l=2PIr;                  //等价于l=2*3.1415926*r;

  s=PI*r*r;              //等价于s=3.1415926*r*r;                        

  v=4.0/3*PI*r*r*r;//等价于v=4.0/3*3.1415926*r*r*r;

  printf("l=%f\ns=%f\nv=%f\n",l,s,v);

}

符号常量

一般用大写字母表示,而变量一般用小写字母表示。

符号常量使用之前必须预先定义,其定义格式为

#define 标识符 常量

例如:#define PI 3.14159

注:#define不是造句,语句后无分号

          #define是一个“预编译命令”

优点:1.含义清晰易懂;

          2.易于修改:在需要改变一个常量时能做到“一改全改”;

          3.用符号常量能保护所替代的数据不被破坏。

实型数据的运算举例

 例2.2 分期付款的计算。张先生为购房,向银行贷款,贷款额为d元,每月准备还 p元,月利率为r,求需要多少个月才能 还清。

                           m=[log(p)-log(p-d*r)]/log(1+r)

        m是还清贷款所需月数         d=324500,皮245,r=0.8%。

1.d和p是整数,r是一个小数,因此程序中要分别定义整型变量和实型变量。

2.公式中用到对数log,这个对数是以10为底的。对数log的函数log10。

#include<stdio.h>

#include<math.h>            用到数学函数时

int main()

{ int d,p;                          定义整型变量d,p                         month=201.983404

  float r,m;                       定义是型变量r,m                          total=655436.127930

  d=324500,p=3245;        定义变量时赋初值

  double r=0.008,m;         定义double型无警告错

  m=(log10(p)-log10(p-d*r))/log10(1+r);          求m的值

  printf("month=%f\n",m);    ——输出实数时                     输出m的值

  printf("total=%f\n",m*p);                                       计算并输出还款数

  return o;

}

实型数据

一、浮点型常量:浮点型常量有两种表示形式。

 1.十进制小数形式

         它是由数字和小数点组成,如:3.14159,-7.2,8.9

2.指数形式

   如:180000.0用指数法可表示为1.8e5,1.8称为尾数,5称为指数。

          0.00123用指数可表示为1.23E-3

注意:

     1.字母e或E的前后都必须有数字。

     2.字母e或E前面的是尾数部分。

     3.e或E后面的是指数部分,必须是整数。

            如:e-3,5e,9.8e3.1都是不合法的。

实型变量按能表示数的精度分为:单精度型、双精度型和长双精度型。定义方法如下:

float a,b;           /*单精度变量的定义*/

double c,d;          /*双精度变量的定义*/

float a,b;             /*单精度变量的定义*/

long double e,f;  /*长双精度变量的定义*/

实型常量的类型

    C语言中一般将实型常量作为双精度来处理。

   可在数的后面加字母f或F来表示其为单精度型(float),如3.1415f。

   加字母l或L来表示其为长双精度型(long double),如3.1415L。

#include<stdio.h>

int main()                                        运行结果

{                                                     c=3.000000

     float a,b,c;            //定义实型常量a、b、c

    a=1.0;                   //给变量a、b、c赋值

    b=2.0;

    c=a+b;

   printf("c=%f",c);            //输出变量c的值

    return 0;

}

实型数据的舍入误差

   虽然实型数据的表示形式有两种,但是在内存中均是以指数形式存放。

  数符|        小数      |阶符|指数

如数据超过有效位,则被舍去,故可能产生误差。

#include<stdio.h>

int main()

{ float a;

  a=1234.1415926;                 a=1234.141602

 printf("a=%f\n",a);                      7位有效位

return 0;                               最好:double a;

}                                (单精度)a=1234.1415926;(双精度)      编译时有警告       

   

#include<stdio.h>                        运行结果

int main()                                 a=1234567892.000000    

{                                              b=12345678848.000000

     float a,b,c;                          c=12345678848.000000

    a=123456789.123;                    有效数字位数:7

    b=123456.789e5;

   c=b+20;

   printf("a=%f\nb=%f\nc=%f\n",a,b,c);

   return 0;

}