| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1990 人关注过本帖
标题:用幂函数解1+1/2-1/3+…+1/99-1/100,求找错
只看楼主 加入收藏
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
用幂函数解1+1/2-1/3+…+1/99-1/100,求找错
    在论坛搜了,没有用幂函数解此题的。试着编写了一段程序,运行后什么也不显示。请大家更正,先行谢过。
    说一下我的解题思路:把上述算数式归结为式子:(用语言表达,幂手机输入法无法输出)∑i 1到100 (-1)^(i - 1)*(1 / i)。下面是程序源码:
//求1-½+1/3-…+1/99-1/100
#include<stdio.h>
#include<math.h>
int main(void)
{
    double i, sign, sum;   
    i = 1.0;
    sum = 0.0;
    while (0.0 < i < 100.0)
    {
        sign = pow(-1.0, (i -1.0));
        sum = sum + sign* (1.0 / i);
        i = i + 1.0;
    }
    printf("算数式的和为:%lf", sum);
    return 0;
}
搜索更多相关主题的帖子: 手机输入法 include double 
2016-05-09 21:59
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:5 
不能用代数式
while (0.0 < i < 100.0)

while ((0.0<i) && (i<100.0))
或:
while (i < 100.0)
2016-05-10 08:42
墨莫莫
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:29
专家分:102
注 册:2016-4-18
收藏
得分:0 
回复 2楼 吹水佬
为什么
2016-05-10 09:48
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
回复 2楼 吹水佬
    我记得《The C programming language》里有一句话,凡是能用相应类型数值参数的地方,同样也能用相应类型数值的算数式代替。难道不适用pow函数吗?


C语言自学者(初登殿堂)
2016-05-10 11:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>

int main( void )
{
    double r = 0.0;
    for( int i=1; i<=100; ++i )
        r += (i%2*2-1.0)/i;

    printf( "%lf\n", r );
    return 0;
}
2016-05-10 12:26
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
回复 4楼 RNLSoul
数学代数式和C的语法是两回事,用解数学的方法和公式都是可以的,但要想让编译器明白你要做什么,就必须按照C的语法来写语句。
2016-05-10 12:49
墨莫莫
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:29
专家分:102
注 册:2016-4-18
收藏
得分:0 
a<b<c
在c语言中会变成(a<b)<c,先判断括号中的,判断的结果是真或者假,用真或者假在与c来比较!
2016-05-10 14:11
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    那最后的结论呢?以我的思路,此题有解吗?还是2楼说的:不能用代数式?


C语言自学者(初登殿堂)
2016-05-10 16:44
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 8楼 RNLSoul
不用代数式

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2016-05-11 16:54
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    附上最后正确的程序源码:

//求1-½+1/3-…+1/99-1/100
#include<stdio.h>
#include<math.h>
int main(void)
{
    double i, sign,sum;   
    i = 1.0;
    sum = 0.0;
    while (i < 101.0)
    {
        sign = pow(-1.0, (i -1.0));
        sum = sum + sign* (1.0 / i);
        i = i + 1.0;
    }
    printf("算数式的和为:%lf", sum);
    return 0;
}


C语言自学者(初登殿堂)
2016-05-15 22:41
快速回复:用幂函数解1+1/2-1/3+…+1/99-1/100,求找错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015391 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved