| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 643 人关注过本帖
标题:一个小问题,向大家求教
只看楼主 加入收藏
乐兜
Rank: 1
等 级:新手上路
帖 子:10
专家分:5
注 册:2012-11-15
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:13 
一个小问题,向大家求教
程序代码:
#include <stdio.h>
int main ()
{
    int i,sum;
    for(i=1;i<6;i++)
    {
        sum +=i;
    }
    printf("sum=%d",sum);
    return 0;
}
今天无意发现的。这本来是一个非常小的程序,按照我的理解,最后应该输出的是sum=1+2+3+4+5=15
我Win7 64位电脑 VC.60 运行下的结果为 sum=-858993445
差距好大啊 - -  是电脑的问题还是我编写的细节出错了?   各位大神你们说是为什么啊


在补充个问题
int i,sum;
    for(i=1;i<6;i++)
这个没有错对吧?我也可以运行的
可是我在书上是这么学的。。
int sum;
    for(int i=1;i<6;i++)
这样就运行不了了。。。是书上写错了?  大神们啊

2012-11-26 23:27
linlianchao
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-7-27
收藏
得分:1 
回复 楼主 乐兜
sum要初始化为0
2012-11-26 23:31
乐兜
Rank: 1
等 级:新手上路
帖 子:10
专家分:5
注 册:2012-11-15
收藏
得分:0 
回复 2楼 linlianchao
int i,sum;
我在书上学的是这种情况就表示等同于
int i=0int sum=0
难道不是?
2012-11-26 23:34
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:1 
实践一下出真知

www.qunxingw.wang
2012-11-27 08:20
qujunde
Rank: 2
等 级:论坛游民
帖 子:6
专家分:11
注 册:2012-11-19
收藏
得分:1 
int sum;
     for(int i=1;i<6;i++)

我就这么写。。。。   手头没编译器,理论上没错啊。 循环里的i没有必要初始化为全局变量。

至于初始化为0 这个也是看编译器的 所以你最好自己给写上 sum=0

[ 本帖最后由 qujunde 于 2012-11-27 08:53 编辑 ]
2012-11-27 08:42
虚伪飞飞
Rank: 2
等 级:论坛游民
帖 子:11
专家分:14
注 册:2012-11-25
收藏
得分:1 
#include <stdio.h>
int main ()
{
    int i,sum;
    sum = 0;     //sum要初始化为0
    for(i=1;i<6;i++)
    {
        sum +=i;
    }
    printf("sum=%d",sum);
    system("pause");
    return 0;
}
2012-11-27 10:48
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:1 
sum不初始化值在你运算的时候编译器就随机给你一个值,也就是一个垃圾数值,所以才会是现在的 sum=-858993445
2012-11-27 11:00
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
回复 楼主 乐兜
第一问已有回复:就是sum没有初始化


[fly]存在即是合理[/fly]
2012-11-27 12:44
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:1 
回复 楼主 乐兜
楼主说的sum不初始化直接当0用的情况没见过,至于楼主说在for()里定义变量的做法是C++中的,C好像不行,

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-27 12:47
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 楼主 乐兜
至于第二问, for里面声明变量是c99的东西,gcc默认是c89
或者编译的时候加-std=c99


[fly]存在即是合理[/fly]
2012-11-27 12:47
快速回复:一个小问题,向大家求教
数据加载中...
 
   



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

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