第一步:计算算术表达式
计算机速度快,很适合做计算和逻辑判断工作。
首先介绍顺序结构程序设计,其基本思路是:把需要计算机完成的工作分成若干个步骤,然后依次让计算机执行。注意这里的“依次”二字——步骤之间是有先后顺序的。这部分的重点在于计算。接下来介绍分支结构程序设计,用到了逻辑判断,根据不同情况执行不同语句。本章内容不复杂,但是不容忽视。
注意:编程不是看会的,也不是听会的,而是练会的,所以应尽量在计算机旁阅读 本书,以便把书中的程序输入到计算机中进行调试,顺便再做做上机练习。千万不要图快——如果没有足够的时间用来实践,那么学得快,忘得也快。
计算机的“本职”工作是计算,因此下面先从算术运算入手,看看如何用计算机进行复杂的计算。
【计算最简单的表达式 1+2 的值】
1 2 3 4 5 6 | #include<stdio.h> int main() { printf("%d\n", 1+2); return 0; } |
%d 表示这个位置要用一个整数去替换,在本题中,是 1+2 的运算结果 3。
d 是十进制 decimal 的缩写
如果要表示运算过程,可以这样写:
1 | printf("1+2=%d\n", 1+2); |
像下面的写法也是可以的,这样一来就和输出 hello, world 没有什么区别了
1 | printf("1+2=3\n",); |
实验
1) 输出 3-4 的结果
2) 输出 5×6 的结果
3) 输出 8÷4 的结果
4) 输出 8÷5 的结果
和你的预期结果一样吗?
在C语言中,8/5的确切含义是8除以5所得商值的整数部分。同样地,(-8)/5的值是-1,不信可以自己试试。那么如果非要得到8÷5=1.6的结果怎么办?
【计算 8/5 的值,结果保留小数点后一位】
1 2 3 4 5 6 | #include<stdio.h> int main() { printf("%.1lf\n", 8.0/5.0); return 0; } |
%.1lf 表示这个位置要用一个浮点数(实数) float 来替换,l 表示 long,lf 就表示长的浮点数
看仔细了,百分号后面是个小数点,然后是数字1,再然后是小写字母l,最后是小写字母f。
千万不能打错,包括大小写——在C语言中,大写和小写字母代表的含义是不同的。
实验
1) 结果保留小数点后三位
2)如果把 8.0/5.0 改成 8/5,结果又如何?
【复杂的表达式(带平方根)计算】
1 2 3 4 5 6 7 | #include<stdio.h> #include<math.h> int main() { printf("%.8lf\n", 1+2*sqrt(3)/(5-0.1)); return 0; } |
程序中用到了数学函数sqrt,作用是计算x的算术平方根(若不信,可输出sqrt(9.0)的值试试)。一般来说,只要在程序中用到了数学函数,就需要在程序最开始的地方包含头文件math.h,并在编译时连接数学库。