C语言 输入一个正整数n 计算1/1+1/4+1/7+....+1/(3n-2)

这是我编的 结果 r总是等于1.00 错在哪里??

#include<stdio.h>
main()
{
int n,i;
double r=0,x;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ x=1/(3*i-2);
r=r+x;
}
printf("%.2f",r);
return 0;
}

第1个回答  2016-11-25
#include<stdio.h>
main()
{
int n,i;
double r=0,x;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ x=1/(3*(double)i-2);//这里i强制转换要不然x值都是整数
r=r+x;
}
printf("%.2f",r);
return 0;
}本回答被提问者采纳
第2个回答  2016-11-25
因为c的除法 如果都是整数 结果也会是整数 舍去小数位
你需要把3改成3.0