再读《The C Programming language》 - 第一章 1.2 变量和算术表达式

1.2 变量和算术表达式

C语言是一门实践科学!以例子来讲解其自身在好不过了,但凡是要循序渐进,K&R大师立即给出了这个小程序,华氏温度和摄氏温度之间的转换,来引导大家!如果你学习到后面,相信这个程序是个对你来说是微乎其微的小程序~但对于初学者,一切都是新的,这无疑是一个不小的挑战!所以,在这里的定位应是,看看就行了,知道了解,一个程序的架构,另外知道C语言可以做数学运算哇!至少知道它有个用途了,学起来也带劲些,是不?

// main.c
// version 1.0
// Print Fahrenheit-Celsius table
// for fahr = 0, 20, ..., 300
#include <stdio.h>


main()
{
    int fahr, celsius;
    int lower, upper, step;


    lower = 0;      /* lower limit of temperature scale */
    upper = 300;    /* upper limit */   
    step  = 20;     /* step size */


    fahr = lower;
    while(fahr <= upper){
        celsius = 5 * (fahr - 32) / 9;
        printf("%d\t%d\n",fahr, celsius);
        fahr = fahr + step;
    }
        getchar();
}


看到程序是不是眼花,呵呵没有关系,这段代码包含了很多知识:如,变量(定义,命名,赋值),while循环,数值之间比较运算,数学运算,格式化输出等,所以看到这里我自己都迷茫了,是不是应该从第二章开始写起呢?当然,我对C语言有一定了解了,回头看这些,是没有什么难度的,新手就比较吃力的,这是一个打基础的机会,仔细看每句话,字字千金哇!我这里就不分析这个程序了。

// main.c
// version 2.0
// Print Fahrenheit-Celsius table
// for fahr = 0, 20, ..., 300
#include <stdio.h>

main()
{
    float fahr, celsius;
    float lower, upper, step;

    lower = 0;      /* lower limit of temperature scale */
    upper = 300;    /* upper limit */   
    step  = 20;     /* step size */

    fahr = lower;
    while(fahr <= upper){
        celsius = (5.0 / 9.0) * (fahr - 32.0);
        printf("%3.0f %6.1f\n",fahr, celsius);
        fahr = fahr + step;
    }
        getchar();
}


当新手还没有来得及消化第一个程序的时候,这个程序就升级了版本2.0, 看K&R大师的思维,没有绝对完善的程序,只有一步一步完善才能做的更好;所以程序员应该是最有怀疑精神的人,是逻辑思维最强的。在还没有写一个程序的时候,就会考虑,而且一直考虑程序是否有未考虑到的情况,以及如何去进一步完善这个程序!程序细节不予分析

练习(进步唯一之路径)
Exercise 1-3. Modify the temperature conversion program to print a heading above the table. 
// main.c
// version 3.0
// Print Fahrenheit-Celsius table
// for fahr = 0, 20, ..., 300
#include <stdio.h>

main()
{
    float fahr, celsius;
    float lower, upper, step;

    lower = 0;      /* lower limit of temperature scale */
    upper = 300;    /* upper limit */   
    step  = 20;     /* step size */

        printf("   Fahrenheit    ->      Celsius\n");   /* print a heading above the table */

    fahr = lower;
    while(fahr <= upper){
        celsius = (5.0 / 9.0) * (fahr - 32.0);
                printf("\t%3.0f \t\t%6.1f\n",fahr, celsius);
        fahr = fahr + step;
    }
        getchar();
}



Exercise 1-4. Write a program to print the corresponding Celsius to Fahrenheit table. 
// main.c
// version 4.0
// Print Celsius -> Fahrenheit table
// for celsius = 0, 20, ..., 300
#include <stdio.h>
/*
fahr = celsius * (9.0 / 5.0) + 32.0
*/
main()
{
    float fahr, celsius;
    float lower, upper, step;

    lower = 0;      /* lower limit of temperature scale */
    upper = 300;    /* upper limit */   
    step  = 20;     /* step size */

        printf("        Celsius    -> Fahrenheit\n");   /* print a heading above the table */

    celsius = lower;
    while(celsius <= upper){
        fahr = celsius * (9.0 / 5.0) + 32.0;
                printf("\t%3.0f \t\t%6.1f\n", celsius, fahr);
        celsius = celsius + step;
    }
    getchar();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值