第 5 章 深入理解函数
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-16
printf("%lf\n",myround(x)); return 0; } ceil()和floor()函数是库函数,属于数学函数调用,因此头文件要添加math.h说明.编译时,gcc编译器不会连接math.h头文件,在编译时加上-lm参数.ceil()函数是向上舍入,floor()函数是向下舍入.如:ceil(-3.51)=-3.00,floor(-3.5.1)=-4.00,ceil(4.49)=5.00,floor(4.49)=4.00,该函数的缺点就是,不会自动帮你判断小数为的大小进行四舍五入.因此要自己取小数进行判断,然后对判断结果来执行不同的语句. <二>增量式开发 增量式开发开发时初学者及开发人员检查程序bug的一种方式.很适合初学者.每做一步就测试一次,查看编写代码是否有bug.这样排除容易. 现在练习一个例子: 已知圆的半径的两个端点的坐标,圆心(x1,y1)和圆上任意一点(x2,y2).求圆的面积,开平方根用到sqrt数学函数. 1.用到的两点间的距离公式: distance = √((x2-x1)2 (y2-y1)2) 2.求出圆半径,求圆公式: area = π·radius2 #include <stdio.h> #include <math.h> double distance(double x1,double y1,double x2,double y2) { double dx = x2 - x1; double dy = y2 - y1; /*printf("dx is %f\ndy is %f\n",dx,dy);*/ double dsquared = dx * dx dy * dy; /*printf("dsquared is %f\n",dsquared);*/ double result = sqrt(dsquared); return result; /*return 0.0;*/ } double area(double radius) { return 3.1416 * radius * radius; } int main() { printf("%f\n",distance(1.0,2.0,4.0,6.0)); printf("%f\n",area(distance(1.0,2.0,4.0,6.0))); return 0; } 通常测试可以很清楚的知道那步写错了,找bug方便容易.有很多高手都是一步到位的.return sqrt((x2-x1) * (x2-x1) (y2-y1) * (y2-y1));为了维护方便,将所要重复用到的函数封装起来,尽可能复用(Reuse)以前写的代码,避免写重复的代码 <三>递归 经典的例子算阶乘, #include <stdio.h> int factorial(int n) { if (n == 0) return 1; else { int recurse = factorial(n-1); int result = n * recurse; return result; } } int main() { int x; printf("Please input x:\n"); scanf("%d",&x); printf("%d\n",factorial(x)); |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于第 5 章 深入理解函数的所有评论