2889|1

61

帖子

3

TA的资源

一粒金砂(初级)

楼主
 

有参数无返回值的函数 [复制链接]

函数printfline在每次被调用时都将显示同一行。对value函数也是如此。其实,我们也可以让调用函数从终端读取数据,然后将它传递给被调用函数。这种方法看起来更明智些,因为如果有必要,在将数据传递给被调用函数之前,调用函数可以检查该数据的有效性。
我们可以如下修改两个被调用函数,使之包含参数:
void printline(char ch);
void value(float p,float r,int n)
参数chprn称为形参。现在,调用函数就可以使用带参数的函数调用来将值传递给参数了。例如,函数调用:
Value500012,5
就可以把值500,0.12,5传递给函数
void value(float p,float r,int n)
并把500赋给p0.12赋给r5赋给n。值5000.125就是实参。他们会成为被调用函数中形参的值。
实参和形参在数量、类型和顺序上必须匹配。实参的值就逐个赋给形参。
必须确保函数调用时参数要匹配。如果实参多余形参,那么多余的实参将会被丢弃。相反,如果实参少于形参,未匹配的形参将被初始化为垃圾值。数据类型的任何不匹配的情况都将导致传递垃圾值。记住,这是不会产生错误消息的。
形参必须是有效的变量名,而实参可以是变量名、表达式或常量。若使用变量作为实参,变量在函数调用之前必须已赋值。
记住,函数调用时,只是将实参的值的副本传递给了被调用函数。被调用函数中所发生的一切都不会影响实参中的变量。
void printline(char c);
void value(float,float,int);
main()
{
       floatprincipal,inrate;
       intperiod;
       printf("Enterprincipal amount,interest");
       printf("rate,andperiod\n");
       scanf("%f%f %d",&principal,&inrate,&period);
       printline('z');
       value(principal,inrate,period);
       principal('C');
}
void principal(char ch)
{
       inti;
       for(i=1;i<=52;i++)
              printf("%c",ch);
       printf("\n");
}
void value(float p,float r,int n)
{
       intyear;
       floatsum;
       sum=p;
       year=1;
       while(year<=n)
       {
              sum=sum*(1+r);
              year=year+1;
       }
       printf("%f\t%f\t%d\t%f\n",p,r,n,sum);
}

最新回复

然后呢,想说明什么?亲  详情 回复 发表于 2016-4-27 23:46
点赞 关注

回复
举报

7815

帖子

57

TA的资源

裸片初长成(中级)

沙发
 
然后呢,想说明什么?亲
 
个人签名

强者为尊,弱者,死无葬身之地

 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表