有以下程序:(c语言题目求解)
#include<stdio.h>doublef(intn){inti;doubles;s=1.0;for(i=1;i<=n;i++)s+=1.0/i;returns;}...
#include <stdio.h>
double f(int n)
{ int i; double s; s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
return s;
}
main()
{ int i,m=3; double a=0.0;
for(i=0;i<m;i++) a+=f(i);
printf("%f\n",a);
} 展开
double f(int n)
{ int i; double s; s=1.0;
for(i=1;i<=n;i++) s+=1.0/i;
return s;
}
main()
{ int i,m=3; double a=0.0;
for(i=0;i<m;i++) a+=f(i);
printf("%f\n",a);
} 展开
3个回答
展开全部
结果是5.500000
高教版全过计算机二级c语言第7章课后原题。
你打的程序里面有几个地方出现了中文字符,会导致编译无法通过
高教版全过计算机二级c语言第7章课后原题。
你打的程序里面有几个地方出现了中文字符,会导致编译无法通过
更多追问追答
追问
哪里有中文字符?这是填空题 我想要思路的
追答
main() 大括号
{ int i,m=3; double a=0.0; i后面的逗号
for(i=0;i<m;i++) a+=f(i);
printf("%f\n",a);
}
这几个地方中文字符。
只考了一个累加求和算法。
主函数能看出来,累加是在计算a=0+f(0)+f(1)+f(2)
然后到函数f分别代入0 1 2能够得到结果
函数f能看出,仍然是在累加,是在计算s=1.0+1/1+1/2+1/3+1/4+……+1/n
而return s能确认s的值就是函数f的返回值
也就是说,
f(0)=1.0
f(1)=1.0+1/1=2.0
f(2)=1.0+1/1+1/2=2.5
带回主函数就行了。
这道题考的是基本算法。
---------------------------------------------
我知道是填空题,我连题目出处都指出来了,还能不知道这个?
我的感觉,你的c学的太浮躁了。刚开始学的时候注重的语法,语法掌握后,应该把精力放到基本算法上了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询