①源程序
#include<stdio.h>
doublef(intn)
{
inti;
doubles;
s=1.0;
for(i=1;i<=n;i++)s+=1.0/i;
returns;
}
main()
{
inti,m=3;
doublea=0.0;
for(i=0;im;i++)a+=f(i);
printf("%f\n",a);
}
~
②先看主函数
求a的值
~
③实参赋值形参
形参i
实参n
i=0不满足形参中i>=1条件,不执行
i=1=n=i
i=2=n=i
i=3不满足实参中i<=3条件,不执行
即只赋值1,2。
~
④用形参的公式计算
公式s=s+1.0/i
i=1
s=1.0+1.0/1=2.0
i=2
s=2.0+1.0/2=2.5
~
⑤returns
将形参中s的值
返回给实参中的f(i)
实参公式a=a+f(i)
i=1、s=2.0
a=0.0+2.0=2.0
i=2、s=2.5
a=2.0+2.5=5.5
又因为输出%f,默认小数点后6位
即a=5.
~
⑥总结
此题很好的复习了
函数解题四步曲
尤其是本题
定义函数在前
main函数在后
但是
无论主函数在什么位置
先看主函数求什么