| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:新手求教育,简单C,代码不到10行总出错。。。
只看楼主 加入收藏
whaoren2000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:19 
新手求教育,简单C,代码不到10行总出错。。。
#include <stdio.h>
 void main( )
{
int i,j,t,k=0;
for (i=1,j=100;i<=j;k=k+i+j,i++,j--)

t=k;
printf("总和=%d",t);

}


就是1到100求和,结果总是4949,咋回事牛人给分析一下呗。。。
还有把t=k;这一行去掉,结果更是不对。。。也分析下啊。。。。
第三天学C,泪奔中。。。
搜索更多相关主题的帖子: 教育 void include 
2012-03-02 15:25
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:2 
求和怎么弄的这么复杂啊,
2012-03-02 15:50
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:2 
49次101相加  肯定是4949了

你可以这样看   就知道错哪了
程序代码:
int i,j,t,k=0;
    for (i=1,j=100;i<=j;k=k+i+j,i++,j--)
    {
        printf("%d\n",k);
        t=k;
    }
    printf("总和=%d",t);


不管怎么走、总有一个终点...
2012-03-02 15:57
chan_
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
收藏
得分:0 
第一次没有加进去,当i=1时没有加到k里去
2012-03-02 15:57
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
int i,j,t,k=0;
    for (i=1,j=100;k=k+i+j,i<=j;i++,j--)
        t=k;
    printf("总和=%d",t);

不管怎么走、总有一个终点...
2012-03-02 16:06
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 4楼 chan_
不是第一次  是第50次没加进去!

也不是  没加进去  是没有加到t里面去      k里面已经是5050了


[ 本帖最后由 icysky 于 2012-3-2 16:16 编辑 ]

不管怎么走、总有一个终点...
2012-03-02 16:15
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:2 
当i=j=50时你只循环了49次;

这样改:
int i,j,t,k=0;
     for (i=1,j=100;i<=j;k+=i+j,i++,j--);//这儿的分号不能少啊。
     printf("总和=%d",k);
2012-03-02 16:37
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 7楼 回首依依
i和j不可能同时为50   
除非i的初值为0

而且  循环了50次  只不过  第50次没有加到t里面去    k已经是5050了

不管怎么走、总有一个终点...
2012-03-02 17:25
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:2 
程序代码:
#include <stdio.h>
void main( )
{
   int i,j,t,k=0;

   for (i=1,j=100;i<=j;i++,j--)
    k=k+i+j;
    t=k;
    printf("总和=%d",t);
}
刚学,把k+=i+j从括号里放出来吧,解放了他也解放了你。

梅尚程荀
马谭杨奚







                                                       
2012-03-02 19:09
xep007
Rank: 2
等 级:论坛游民
帖 子:5
专家分:12
注 册:2010-5-29
收藏
得分:2 
for循环写成这样复杂是不是可以提高效率。
2012-03-03 18:02
快速回复:新手求教育,简单C,代码不到10行总出错。。。
数据加载中...
 
   



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

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