百变kelvin 发表于 2016-7-30 11:30:24

一道往年二级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
请各位大神指导指导,感激不尽。

杰伦秋 发表于 2016-7-30 12:06:40

1、可以填0.0的。
2、整个函数我是理解的,是实现递归功能,求累加,你就用举例的方式,i=1,i=2,很好理解的。应该有题目要求的哈~~

大奔G 发表于 2016-7-30 23:21:39


#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();
}

百变kelvin 发表于 2016-7-31 13:20:27

大奔G 发表于 2016-7-30 23:21
#include
#include



我其实是想问s=s+(2.0*i-1)*(2.0*i+1)/(t*t)这一段是什么意思,我怎么知道这里的空是填t*t呢?

大奔G 发表于 2016-8-2 20:32:09

百变kelvin 发表于 2016-7-31 13:20
我其实是想问s=s+(2.0*i-1)*(2.0*i+1)/(t*t)这一段是什么意思,我怎么知道这里的空是填t*t呢?

我一开始看了将近五分钟,结合他是一道问题,那么他那必然是横线是提示你输出,所以我理所当然后边填上t*t

百变kelvin 发表于 2016-8-3 10:59:41

问题已解决,第三个空是根据给定的公式填入的,不过还是感谢鱼友的指导。

子煜从嘉 发表于 2016-8-3 18:40:51

{:10_277:}
页: [1]
查看完整版本: 一道往年二级C语言的题目,不太理解,请各大神指导。