int main(void)
{ int i,n;
double h, sum;
sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{h=1.0/(4i-3)-1.0/(4i-1);
sum=sum+h;
}
printf("%.5lf",4*sum);
return 0;
}
输入1的话,理论值应该是2.66667,;但是我上面的程序得到的结果却是(-0.24471)
实在找不到我的错误出在了哪里。
int main(void)
{
int i, n;
double h, sum;
sum = 0.0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
h = 1.0 / (4i - 3) - 1.0 / (4i - 1);
sum = sum + h;
}
printf("%.5lf", 4 * sum);
getchar();
return 0;
}
我运行就没问题 就改了一下h = 1.0 / (4i - 3) - 1.0 / (4i - 1);这一句的*号
wow,我知道问题出在哪了!4i在C语言中读不出来!!4i应该写成4*i!
@Fate-Joker: 哈哈,我还以为你写的是复数呢.....
include<stdio.h>
int main(void)
{
int i,n;
double h, sum;
sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
h=1.0/(4i-3)-1.0/(4i-1);
sum=sum+h;
}
printf("%.5lf",4*sum);
return 0;
}
帮你格式化一下代码,看着就像屎一样,难受。
新手上路....没太注意过这个代码整洁的问题...谢指正,以后会注意的!
如果我没有猜错的话,应该是自动类型转换了