关于用C语言编写一个程序的问题.

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:05:58
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。
s = 1 + 1/2! +....+ 1/n!
麻烦写出代码,用函数调用的形式编写.谢谢
以下是给出的代码框架:
#include "stdio.h"
int main( )
{
int ri,repeat;
int i,n;
float s,t;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
/*---------*/
printf("%0.4f\n",s);
}
}

#include "stdio.h"
float f1(int);
float f2(float);
int main( )
{
int ri,repeat;
int i,n;
float s=0,t;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++)
{ scanf("%d",&n);
s=f1(n);
printf("%0.4f\n",s);
}

}
float f1(int n)/*求S*/
{ float sum=0,a;
for(a=1;a<=n;a++)
sum+=1/f2(a);
return sum;
}
float f2(float n)/*求积*/
{
float b,ji=1;
for(b=1;b<=n;b++)
ji*=b;
return ji;
}
因为我不是高手 经过了半小时的编写和测试 终于得了

#include "stdio.h"
int main( )
{
float fun(int n);
int ri,repeat;
int i,n;
float s,t;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
s=0;
for(t=1;t<=n;t++)
s+=fun(t);
printf("%0.4f\n",s);
}