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.
Exercise 1-4. Write a program to print the corresponding Celsius to Fahrenheit 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();
}