| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:有个C语言的问题 请大家帮看看
只看楼主 加入收藏
小猪君
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
有个C语言的问题 请大家帮看看
输入一个正整数n,计算1-1/4+1/7-1/10+1/13-1/16+…的前n 项之和,输出时保留3位小数。

#include "stdio.h"
#include "math.h"
void main()
{
    int flag=1,i=1;
    double item,eps,s=0;
    printf("Enter n: ",&eps);
    scanf("%f",&eps);
    while (1)
    {
        item=flag/i;
        s+=item;
        flag=-flag;
        i+=3;
        if (fabs(item)<eps)
            break;
    }
    printf("sum=%.3f",s);
}
可是为什么不管输入什么结果都是1呢
搜索更多相关主题的帖子: double include eps C语言 
2013-04-06 23:15
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:4 
程序代码:
#include <stdio.h>
int main() {
    int n, i, b = 1;
    double sum = 0, t;
    scanf("%d", &n);
    for(i = 1; i <= n; i++) {
        t = 1.0 / (3 * i - 2) * b;
        b *= -1;
        sum += t;
    }
    printf("%.3lf\n", sum);
    return 0;
}

你的第二次循环开始就break掉了...第二次item = 0 < eps

仰望星空...........不忘初心!
2013-04-06 23:26
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:4 
item=flag/i;
整形的除法运算问题 把flag定义为浮点数

人生是一场错过 愿你别蹉跎
2013-04-06 23:27
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:4 
#include "stdio.h"
#include "math.h"
void main()
{
    int eps,i=1,m=0;
    double item,s=0,flag=1;
    printf("Enter n: ");
    scanf("%d",&eps);
    while (m<eps)
    {
        item=flag/i;
        s+=item;
        flag=(-1)*flag;
        i+=3;
        m++;
    }
    printf("sum=%.3f",s);
}
2013-04-07 07:33
c_ios
Rank: 2
等 级:论坛游民
帖 子:30
专家分:56
注 册:2013-3-12
收藏
得分:4 
楼上正解、楼主终止条件错了、

没有所谓的天才、只有不努力的蠢材、、、、
2013-04-07 10:25
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:4 
printf("Enter n: ",&eps);这样写是不对的哦!
while (1)
     {
         item=flag/i;
         s+=item;
         flag=-flag;
         i+=3;
         if (fabs(item)<eps)
             break;
     }这样表达也是不对的,递推规律你也表达错了。
四楼的是正确的

Maybe
2013-04-07 11:09
快速回复:有个C语言的问题 请大家帮看看
数据加载中...
 
   



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

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