首页新闻找找看学习计划

C语言,已经编好了程序,但是输出的结果不是预期的!

0
悬赏园豆:10 [已解决问题] 解决于 2019-10-17 13:46

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;
}
输入1的话,理论值应该是2.66667,;但是我上面的程序得到的结果却是(-0.24471)
实在找不到我的错误出在了哪里。

Fate-Joker的主页 Fate-Joker | 初学一级 | 园豆:188
提问于:2019-10-16 21:31
< >
分享
最佳答案
1

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);这一句的*号

收获园豆:9
彭小立 | 菜鸟二级 |园豆:279 | 2019-10-17 12:51

wow,我知道问题出在哪了!4i在C语言中读不出来!!4i应该写成4*i!

Fate-Joker | 园豆:188 (初学一级) | 2019-10-17 13:41

@Fate-Joker: 哈哈,我还以为你写的是复数呢.....

会长 | 园豆:5328 (大侠五级) | 2019-10-17 15:18
其他回答(2)
0
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;
}

帮你格式化一下代码,看着就像屎一样,难受。

收获园豆:1
会长 | 园豆:5328 (大侠五级) | 2019-10-17 09:14

新手上路....没太注意过这个代码整洁的问题...谢指正,以后会注意的!

支持(0) 反对(0) Fate-Joker | 园豆:188 (初学一级) | 2019-10-17 13:46
0

如果我没有猜错的话,应该是自动类型转换了

你超载了啊 | 园豆:188 (初学一级) | 2019-10-17 09:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册