| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 16641 人关注过本帖
标题:1到100到累加和
只看楼主 加入收藏
刚学C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-31
收藏
 问题点数:0 回复次数:10 
1到100到累加和
程序代码:
#include<stdio.h>
int main()
{
    int i,sum;
    i=1;
    sum=0;
    while(i<=100)
    {
        i+=1;
        sum=sum+i;
        
    }
    printf("sum is%d",sum);
    return 0;

 }

结果怎么不是5151呢? 如果只有i+=1循环100次的话应给是101呀!
程序代码:
#include<stdio.h>
int main()
{
    int i,sum;
    i=1;
    sum=0;
    while(i<=100)
    {
        i+=1;
        
        sum=sum+i;
    }
    printf("sum is%d",sum);
    return 0;

 }

这样才是正确的结果是5050   5050+101=5151才对呀!为什么结果会少1呢?高手可以讲一下这是为什么呢?
搜索更多相关主题的帖子: 累加 
2008-11-02 14:44
rongtion
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-2
收藏
得分:0 
i+=1 第一次=2 最后一次= 101 所以 sum=(2+101)*100/2 =5150
2008-11-02 14:52
刚学C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-31
收藏
得分:0 
为什么不是101+5050呢?中间为什么多个1呢?当i=100的时候又循环了一次,i的值不是101么?

[[it] 本帖最后由 刚学C 于 2008-11-2 15:00 编辑 [/it]]

嘿嘿...C真的好Nan!
2008-11-02 14:58
rongtion
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-2
收藏
得分:0 
把 i+=1移到sum=sum+i下面这样就对了
#include<stdio.h>
int main()
{
    int i,sum;
    i=1;
    sum=0;
    while(i<=100)
    {
        sum=sum+i;
        i+=1;
    }
    printf("sum is%d",sum);
    return 0;
}
2008-11-02 14:58
刚学C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-31
收藏
得分:0 
恩,这个我知道,就是不明白结果为什么是5150而不是5151,

嘿嘿...C真的好Nan!
2008-11-02 15:02
rongtion
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-2
收藏
得分:0 
是的 最后一次循环的确i=101 可是第一次循环后i=2了 所以是从2开始加到101的 不是从1 开始加的 如果想从1开始加 第五行应该把i 赋值为0 即i=0 或者把第九行 i+=1;移到 sum=sum+i;后面 这样才是1加到100
2008-11-02 15:04
刚学C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-31
收藏
得分:0 
回复 6# 的帖子
是的 最后一次循环的确i=101 可是第一次循环后i=2了 所以是从2开始加到101的 不是从1 开始加的 如果想从1开始加 第五行应该把i 赋值为0 即i=0

也就是说第一次执行循环的时候i=2了,已经少加了一个1?

[[it] 本帖最后由 刚学C 于 2008-11-2 15:10 编辑 [/it]]

嘿嘿...C真的好Nan!
2008-11-02 15:08
rongtion
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-11-2
收藏
得分:0 
对的 第一次循环的时候已经是2了 不是1 所以就变成从2加到101 了
2008-11-02 15:13
刚学C
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-31
收藏
得分:0 
回复 8# 的帖子
理解了,,谢谢!

嘿嘿...C真的好Nan!
2008-11-02 15:15
cooge
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-11-2
收藏
得分:0 
是的,你的算法是2开始加了

你可以在第一次循环时输出i的值看下就知道了
2008-11-02 15:16
快速回复:1到100到累加和
数据加载中...
 
   



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

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