快速业务通道

第 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号