| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 862 人关注过本帖
标题:这C语言哪儿出错了?
只看楼主 加入收藏
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:354
专家分:224
注 册:2006-4-11
收藏
得分:0 
以下是引用longyi3030在2010-7-12 11:16:19的发言:

#include "stdio.h"
void main()
{int a,b,sum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("sum is %d\n",sum);
}
是你的用类型说明符有问题 int 只有两个字节 最大256 你要么用长整形,要么使用实型的。把int换成long int 或者 是float
你们到底用的啥编译器啊...int果然是2个字节...不过两个字节也不是256,unsigned char 最大是255,这个编译器的int最大应该是0x7fff

2010-07-12 12:21
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
int 最大值是32767,当然溢出了……

我很懒,但我讨厌别人说我懒……
2010-07-12 12:23
tk657309822
Rank: 2
等 级:论坛游民
帖 子:17
专家分:20
注 册:2010-6-8
收藏
得分:0 
我的可以弄啊,你用的啥子编译器?
2010-07-12 13:31
Lyncus
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-7-12
收藏
得分:0 
呃。。。这个好像得看编译器的,如果是VC++,int整型(带符号)是4B,32位,最大为2的31次方减1.如果是TurboC++,int整型(带符号)是2B,16位,最大为2的15次方减1,也就是32767.
2010-07-12 23:19
bennet
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-7-13
收藏
得分:0 
用unsigned int吧,你输的数都5万多了,int溢出了(最大2^15-1),用unsigned int把符号位去掉。
2010-07-13 09:50
p0fcv9
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2010-7-13
收藏
得分:0 
程序代码:
> gcc -Wall test.c
> ./a.out
bytes of int: 4
> cat -n test.c
     1  #include <stdio.h>
     2
     3  int main(void) {
     4          size_t si;
     5
     6          si = sizeof(int);
     7          printf("bytes of int: %zu\n", si);
     8
     9          return 0;
    10  }
> uname -smr
FreeBSD 8.0-RELEASE amd64

"bytes of int: ?" 显示的就是你机器编译器 int 的字节数,我的平台 freebsd amd64 8.0



[ 本帖最后由 p0fcv9 于 2010-7-13 16:39 编辑 ]
2010-07-13 16:37
yanjie3155
Rank: 3Rank: 3
来 自:湖北黄冈
等 级:论坛游侠
帖 子:80
专家分:145
注 册:2010-3-8
收藏
得分:0 
溢出了,把整形int改为长整形long inr 就OK了
2010-07-13 22:11
xiaoyi2010
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-13 22:57
快速回复:这C语言哪儿出错了?
数据加载中...
 
   



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

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