一道往年二级C语言的题目,不太理解,请各大神指导。
本帖最后由 百变kelvin 于 2016-8-3 11:19 编辑//本人菜鸟初学者
#include<stdio.h>
double fun(intn)
{ inti; doubles, t;
/**********found**********/
s=__1__; //此处答案是0;
/**********found**********/
for(i=1; i<=__2__; i++) //此处答案是n;
{ t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/__3__; //此处答案是(t*t)
}
returns;
}
main()
{ intn=-1;
while(n<0)
{ printf("Please input(n>0): "); scanf("%d",&n);}
printf("\nThe result is: %f\n",fun(n));
}
两个问题:
第一个填空处可以填0.0吗?
第三个空不太理解,t*t
请各位大神指导指导,感激不尽。 1、可以填0.0的。
2、整个函数我是理解的,是实现递归功能,求累加,你就用举例的方式,i=1,i=2,很好理解的。应该有题目要求的哈~~
#include<stdio.h>
#include<conio.h>
double fun(intn)
{
inti;
doubles, t;
s=0.0; //此处答案是0,(意思就是你给它赋初始值)
for(i=1; i<=n; i++) //此处答案是n,(就是提示你它循环停止的上限,也就是你从函数里面传过来的n值)
{
t=2.0*i;
s=s+(2.0*i-1)*(2.0*i+1)/(t*t); //此处答案是(t*t),(提示你后面除t*t,但是根据运算法则,你必须上括号,保证优先性)
}
returns;
}
main()
{
intn=-1;
while(n<0)
{
printf("Please input(n>0): \n");
scanf("%d",&n);
}
printf("The input num is %d\n", n);
printf("\nThe result is: %lf\n",fun(n));
getch();
} 大奔G 发表于 2016-7-30 23:21
#include
#include
我其实是想问s=s+(2.0*i-1)*(2.0*i+1)/(t*t)这一段是什么意思,我怎么知道这里的空是填t*t呢? 百变kelvin 发表于 2016-7-31 13:20
我其实是想问s=s+(2.0*i-1)*(2.0*i+1)/(t*t)这一段是什么意思,我怎么知道这里的空是填t*t呢?
我一开始看了将近五分钟,结合他是一道问题,那么他那必然是横线是提示你输出,所以我理所当然后边填上t*t 问题已解决,第三个空是根据给定的公式填入的,不过还是感谢鱼友的指导。 {:10_277:}
页:
[1]