| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 477 人关注过本帖
标题:[求助]下面我的语法有错吗?
只看楼主 加入收藏
刀仔
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-10-19
收藏
 问题点数:0 回复次数:6 
[求助]下面我的语法有错吗?

我是刚刚在学C的,书上有一个例子是由1-100的整数累加和,程序是这样
void main(void)
{
int i,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("%d",sum);
}
最后得出的值是5050
在这个例子上面,我想,如果是做由1-1000的整数累加,那SUM的数据类型应该改为长整数long int,但为什么算出来的是负数?在这里我实在不明白。我把程式改成如下
void main(void)
{
int i;
long int sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%d",sum);
}
最后得出的值是-23788
为什么是负数呢?1-1000的累加不是500500吗?在这程序上,我那里出了问题???我是在Turbo c/c++ for Windows上面试的。

搜索更多相关主题的帖子: 语法 
2006-11-08 11:03
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
收藏
得分:0 
printf("%d",sum);

输出格式错了,应改为
printf("%ld",sum);
因为sum是long型

新王登基,血流成河!
2006-11-08 11:38
zhuxiaoan
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-6-1
收藏
得分:0 
第一种修改方法
void main(void)
{
int i;
float sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%f",sum);
}

第二种修改方法
void main(void)
{
int i;
long int sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%ld",sum);
}

[此贴子已经被作者于2006-11-8 11:42:58编辑过]

2006-11-08 11:39
刀仔
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-10-19
收藏
得分:0 
原来是这样,谢谢。
2006-11-08 11:43
tsangjoewong
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-8-23
收藏
得分:0 

这种问题楼主多检查就知道了

2006-11-08 15:12
wfd2004
Rank: 1
等 级:新手上路
帖 子:116
专家分:0
注 册:2006-11-7
收藏
得分:0 
void main(void)
{
int i;
long int sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%d",sum);
}
结果是500500,没错啊!

在交流中成长
2006-11-08 16:14
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
第一种修改方法
void main(void)
{
int i;
float sum=0;
for(i=1;i<=1000;i++)
sum=sum+i;
printf("%f",sum);
}
这样输出的是小数吧!%.0f这样应该可以吧!

有的编译器int是4个字节!

该学习了。。。
2006-11-08 19:04
快速回复:[求助]下面我的语法有错吗?
数据加载中...
 
   



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

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