编写函数,t=1-1/2*2-1/3*3-...-1/m*m,C语言
答案:5 悬赏:10 手机版
解决时间 2021-11-21 17:55
- 提问者网友:树红树绿
- 2021-11-20 19:03
编写函数,t=1-1/2*2-1/3*3-...-1/m*m,C语言
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-11-20 20:41
f()函数里面,
1,t你定义成int型了,不会保存小数结果.
2,for循环里面,应该为t=t-1/(double)(i*i)
在for循环前面,赋值t=1
1,t你定义成int型了,不会保存小数结果.
2,for循环里面,应该为t=t-1/(double)(i*i)
在for循环前面,赋值t=1
全部回答
- 1楼网友:孤独的牧羊人
- 2021-11-20 23:44
1.printf("%f",f(m));
这里的%f应换成%lf
2.for(i=1;1<=m;i++)
你把i错写成1了
这里的%f应换成%lf
2.for(i=1;1<=m;i++)
你把i错写成1了
- 2楼网友:你哪知我潦倒为你
- 2021-11-20 23:13
double f(int m)
{
int i, t=1;
for(i=1;i<=m;i++)
t=t-1/i*i;
return t;
}
{
int i, t=1;
for(i=1;i<=m;i++)
t=t-1/i*i;
return t;
}
- 3楼网友:撞了怀
- 2021-11-20 22:02
#include
double fun(int m) {
double i, t = 0.0,sign = 1.0;
for(i = 1; i <= m; ++i) {
t += sign/(i*i);
sign = -sign;
}
return t;
}
int main() {
int m;
printf("请输入m的值:");
scanf("%d",&m);
printf("%lf ",fun(m));
return 0;
}
double fun(int m) {
double i, t = 0.0,sign = 1.0;
for(i = 1; i <= m; ++i) {
t += sign/(i*i);
sign = -sign;
}
return t;
}
int main() {
int m;
printf("请输入m的值:");
scanf("%d",&m);
printf("%lf ",fun(m));
return 0;
}
- 4楼网友:北城痞子
- 2021-11-20 21:01
float i; //这里i的类型也要定义为float,否则除法(/)取整
float t=1.0; //同上
for(i=2;i<=m;i++) // 这里应该是i<=m,否则死循环
{
t=t-(1.0/(i*i)); //t=t+1-1/i*i;你这方式只对i为1,2时有效,你想想,当i为3时,
t=1-1/2*2 + 1 - 1/3*3 = 2-1/2*2 - 1/3*3, 所以i从2开始更简单
}
float t=1.0; //同上
for(i=2;i<=m;i++) // 这里应该是i<=m,否则死循环
{
t=t-(1.0/(i*i)); //t=t+1-1/i*i;你这方式只对i为1,2时有效,你想想,当i为3时,
t=1-1/2*2 + 1 - 1/3*3 = 2-1/2*2 - 1/3*3, 所以i从2开始更简单
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯