快速业务通道

第 5 章 深入理解函数

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-16
<一>return语句
深入学习return语句,在有返回值的函数中,return语句的作用是提供整个函数的返回值,并结束当前函数返回到调用它的地方.在没有返回值的函数中也可以使用return语句.例如:当检查到一个错误时提前结束当前函数的执行并返回:
对数的概念log,英语名词:logarithms.如果a^b=n,那么log(a)(n)=b.其中,a叫做“底数”,n叫做“真数”,b叫做“以a为底的n的对数”. log(a)(n)函数叫做对数函数.对数函数中n的定义域是n>0,零和负数没有对数;a的定义域是a>0且a≠1.现在底数为a=10,对数为1,则真是为0.
print_logarithm()函数调用判断时,如果x小于0.0,则输出Positive numbers only, please.然后返回函数值,结束当前函数调用,返回到调用它的主函数,继续执行下一条语句,现在在print_logarithm()函数的if语句return后面加多一条多余的代码,如果不是在执行return语句后中断,则会在打印多一个Positive numbers only, please.语句.为什么要用math.h头文件,使用到数学函数loga(n)=b
#include <stdio.h>
#include <math.h>
void print_logarithm(double x)
{
if (x <= 0.0) {
printf("Positive numbers only, please.\n");
return;
printf("Positive numbers only, please.\n");
}
printf("The log of x is %f", log(x));
}
int main(void)
{
print_logarithm(-1.0);
print_logarithm(1.0);
return 0;
} 事实说明return返回函数值后中断,后面语句不再执行.加一行Dead Code,很容易引起bug.其实执行的语句可以换成布尔类型,如果为真返回1,否则返回0. 习题
1、编写一个布尔函数int is_leap_year(int year),判断参数year是不是闰年.如果某年份能被4整除,但不能被100整除,那么这一年就是闰年,此外,能被400整除的年份也是闰年. 2、编写一个函数double myround(double x),输入一个小数,将它四舍五入.例如myround(-3.51)的值是-4.0,myround(4.49)的值是4.0.可以调用math.h中的库函数ceil和floor实现这个函数.
#include <stdio.h>
int is_leap_year(int year)
{
if(year%4 == 0 && year0 != 0)
{
return 1;
}
else
{
if(year@0 == 0)
{
return 1;
}
else
{
return 0;
}
}
}
int main()
{
int x;
printf("Please input year:\n");
scanf("%d",&x);
printf("%d\n",is_leap_year(x));
return 0;
}
希尔函数主要判断方便,如果为真返回1,如果为假返回0; #include <stdio.h>
#include <math.h>
double myround(double x)
{
int a;
a=(int)x;
if(x > 0 )
{
if(x-a >= 0.5)
{
x=ceil(x);
return x;
}
else
{
x=floor(x);
return x;
}
}
else if(x < 0)
{
if(x-a <= -0.5)
{
x=floor(x);
return x;
}
else
{
x=ceil(x);
return x;
}
}
else
{
return x;
}
}
int main()
{
double x;
printf("Please input double x:\n");
scanf("%lf",&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号