| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:自己做的和答案不一样,但是不觉得自己错了,高手们帮看看呗!
只看楼主 加入收藏
安徒生童话话
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
自己做的和答案不一样,但是不觉得自己错了,高手们帮看看呗!
/*计算1-1/2+1/3+1/4+...+1/199-1/200的值*/
#include<stdio.h>
main()
{
    int i;
    float s;
    s=0;
    for(i=1;i<=200;i++)
    {
        if(i==2&&i==200)
        {
            i=-1*i;
            s+=(float)1/i;
        }
        else
            s+=(float)1/i;
    }
    printf("s=%f",s);
}
2015-04-20 12:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
你for()里面那个if()的条件是什么意思?

授人以渔,不授人以鱼。
2015-04-20 12:21
安徒生童话话
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-19
收藏
得分:0 
回复 2楼 TonyDeng
题里面的是1-二分之一 后面都是加法 但是到了200的时候就又是减法 所以用了一个if
2015-04-20 12:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那你说不对,是手算过正确的结果跟计算机算的不对?到底怎么回事,你有责任一开始就说清楚啊。其实,就是按你描述的那樣只有两个特殊,也不用在代码中这般處理,全部是加,到循环结束之后减去多余的就可以了。

授人以渔,不授人以鱼。
2015-04-20 12:31
安徒生童话话
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-19
收藏
得分:0 
回复 4楼 TonyDeng
结果不对,(╯﹏╰),别这么严肃第一次发(;′༎ຶД༎ຶ`) ;我现在就想知道根据题,我编的这个程序错在哪里,运行出来了结果是5点多,这肯定不对 啊(;′༎ຶД༎ຶ`)
2015-04-20 12:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你在i=2时置了负值,不在后面把它改回来啊?

授人以渔,不授人以鱼。
2015-04-20 12:46
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
自己在每次s+=之后,顺手写一行printf()把s輸出看看结果不就知道了么,这个习惯没学会,怎么调试程序。

授人以渔,不授人以鱼。
2015-04-20 12:47
安徒生童话话
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-4-19
收藏
得分:0 
回复 6楼 TonyDeng
那就是在s里面改变符号,然后把前面的那个去掉是么
2015-04-20 12:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
在else那里要把被改成负的改回来,多写个if()。我上面就说了,这代码可以不这么写,你非要问为什么错,告诉你原因了,然后就是自己怎么改的事啦。

授人以渔,不授人以鱼。
2015-04-20 12:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你的for()循环控制变量是i,它要自增的,但你在中间居然把它变成负值,那么再i++是多少?你一步一步验算三、五步,不就明白怎么回事了么。

授人以渔,不授人以鱼。
2015-04-20 12:53
快速回复:自己做的和答案不一样,但是不觉得自己错了,高手们帮看看呗!
数据加载中...
 
   



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

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