Skip to content

《C程序设计语言(The C Programming Language)》学习笔记 1.2

1.2节给出了本书第二个程序实例,并对该实例进行了讲解。要点有以下一些:

  • 注释的概念,注释是被编译器忽略的
  • 变量必须先声明后使用
  • while循环语句的执行方式
  • *,/在写法中的先后顺序
  • printf函数的格式,以及printf函数不是c语言本身的一部分的说明
  • 输出格式的问题
  • 数据精度问题
  • 其中我觉得*,/在写法中的先后顺序比较重点。

    在初始程序中,有这么一句:

    celsius = 5 * (fahr-32) / 9

    其中变量celsius,fahr都是int型的。

    在该语句中,之所以把表达式写成先乘5然后再除以9而不是直接写成5/9,其原因是在c语言及许多其他语言中,
    整数除法操作将执行舍位,结果中的任何小数部分都会被舍弃。由于5和9都是整数,5/9相除后经截取
    所得的结果为0,因此这样求得的所有摄氏温度都将为0.

    之后将变量改为浮点型,这个问题就不存在了。

    练习1-3
    在转换表的顶部打印标题,题目很简单,只要注意printf语句的位置即可,解答如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    #include <stdio.h>
     
    main()
    {
        float fahr,celsius;
        int lower,upper,step;
     
        lower = 0;
        upper = 300;
        step = 20;
     
        fahr = lower;
        printf ("华氏温度与摄氏温度对照表\n");
        while ( fahr &lt;= upper ){
    	celsius = 5 * (fahr - 32) / 9;
    	printf("%3.0f %6.1f\n",fahr,celsius);
    	fahr = fahr + step;
        }
    }

    程式显示结果:

    华氏温度与摄氏温度对照表
      0  -17.8
     20   -6.7
     40    4.4
     60   15.6
     80   26.7
    100   37.8
    120   48.9
    140   60.0
    160   71.1
    180   82.2
    200   93.3
    220  104.4
    240  115.6
    260  126.7
    280  137.8
    300  148.9

    练习1-4
    这个题目就是要逆转公式,原程式是由华氏温度转换为摄氏温度,现在需要修改为摄氏温度转华氏温度,解答如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    #include <stdio.h>
     
    main()
    {
        float fahr,celsius;
        int lower,upper,step;
     
        lower = -17;
        upper = 147;
        step = 10;
     
        celsius = lower;
        printf ("摄氏温度与华氏温度对照表\n");
        while ( celsius &lt;= upper ){
    	fahr = celsius * 9 / 5 +32;
    	printf("%3.0f %6.1f\n",celsius,fahr);
    	celsius = celsius + step;
        }
    }

    打印结果:

    摄氏温度与华氏温度对照表
    -17    1.4
     -7   19.4
      3   37.4
     13   55.4
     23   73.4
     33   91.4
     43  109.4
     53  127.4
     63  145.4
     73  163.4
     83  181.4
     93  199.4
    103  217.4
    113  235.4
    123  253.4
    133  271.4
    143  289.4

    Post a Comment

    Your email is never published nor shared. Required fields are marked *
    *
    *