简单C语言问题,大家帮忙来看看!

main(){longi=0;inta=5;intb=4;intc=3;intd=2;inte=1;i=10000*a+b*1000+c*100+d*10+e;print... main()
{
long i=0;
int a=5;int b=4;int c=3;int d=2; int e=1;
i=10000*a+b*1000+c*100+d*10+e;
printf("%ld\n",i);
getch();
}
我给C定义为长整型了,为什么输出还会产生溢出?
就拿这个程序运行:答案总是:-11215
为什么有的人回答说没有溢出呢?
展开
 我来答
百度网友b035c59
2007-11-22 · 超过17用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:55.2万
展开全部
在vc上运行了 54321没错 理论上来说也是不会溢出的
问题应该出在printf("%ld\n",i),%d是输出整型而%ld输出长整型,你定义的都是整型(两个字节),而用了长整型(四个字节)输出,所以导致溢出。
另外这与编译器有关,有的编译器自动为你匹配好int的,所以没溢出
百度网友d6e23dc09
2007-11-20 · TA获得超过421个赞
知道小有建树答主
回答量:657
采纳率:0%
帮助的人:511万
展开全部
#include <stdio.h>
void main()
{
long i=0;
int a=5;int b=4;int c=3;int d=2; int e=1; (1)
i=10000*a+b*1000+c*100+d*10+e;
printf("%ld\n",i);
getchar(); (2)
}

没有溢出啊 54321

(1)处用一个int就够了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flashingair
2007-11-21 · TA获得超过1562个赞
知道小有建树答主
回答量:1045
采纳率:0%
帮助的人:1114万
展开全部
int最大值是65536,你直接定义成int也不会溢出啊,最后输出%d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zengling87
2007-11-20
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
但是我输出的是溢出的-11215
到底怎么搞的
我也还不清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祝夜Xv
2007-11-20 · 超过17用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:64万
展开全部
第一个人说的对,但这个程序还有一些错误,应该是getchar();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巧巧1020
2007-11-20 · 超过16用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:29.9万
展开全部
我试了 没有溢出啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式