计算1-1/4+1/7-1/10+1/13.......求前n项和
答案:6 悬赏:30 手机版
解决时间 2021-04-07 01:51
- 提问者网友:温柔港
- 2021-04-06 12:21
计算1-1/4+1/7-1/10+1/13.......求前n项和
最佳答案
- 五星知识达人网友:拜訪者
- 2021-04-06 13:09
#include
void main()
{ int n,i;
double result,flag;//flag应设为浮点型,1/2会等于0
printf("请输入数值n:");
scanf("%d",&n);
for(i=1,result=0,flag=1;i<=3*n-2;i=i+3)
{
result=result+flag*1/i;
flag=-1*flag;
}
printf("%lf",result);
}
void main()
{ int n,i;
double result,flag;//flag应设为浮点型,1/2会等于0
printf("请输入数值n:");
scanf("%d",&n);
for(i=1,result=0,flag=1;i<=3*n-2;i=i+3)
{
result=result+flag*1/i;
flag=-1*flag;
}
printf("%lf",result);
}
全部回答
- 1楼网友:西岸风
- 2021-04-06 16:18
result=result+flag*1/i;
这一句有问题:
改成
result=result+(double)flag*1/i;
你源程序里面的flag*1/i除出来是个INT型,转换成DOUBLE型即可
这一句有问题:
改成
result=result+(double)flag*1/i;
你源程序里面的flag*1/i除出来是个INT型,转换成DOUBLE型即可
- 2楼网友:底特律间谍
- 2021-04-06 15:51
问题出在 1/i 上 i是int型 1除以任何int型都是1
你需要把i变成double型 或者将flag换成double型
你需要把i变成double型 或者将flag换成double型
- 3楼网友:狂恋
- 2021-04-06 15:25
太简单啦 你的i为int型的
result=result+flag*1/i;这里应该把i强制转换为float或者double型。即result=result+flag*1/(float)i
result=result+flag*1/i;这里应该把i强制转换为float或者double型。即result=result+flag*1/(float)i
- 4楼网友:孤独的牧羊人
- 2021-04-06 14:21
把flag改成double
result=result+flag*1/i; 这里flag/i=0了,所以输出一直是1.000000
result=result+flag*1/i; 这里flag/i=0了,所以输出一直是1.000000
- 5楼网友:罪歌
- 2021-04-06 13:45
你用while循环语句试一下。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯