A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xuqiang@123 初级黑马   /  2015-9-1 17:17  /  792 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int a,b,c,max;
    a = b = c = max = 0;
   
    printf("请输入三个数,并以逗号分隔开:\n");
    scanf("%d,%d,%d",&a,&b,&c);
    max = a >= b? a : b;
    max = max >= c? max : c;
    printf("最大数是%d\n",max);
    return 0;

请输入三个数,并以逗号分隔开:
555555,77777777,88888888888
最大数是917737016
Program ended with exit code: 0

6 个回复

倒序浏览
本帖最后由 Joker_999 于 2015-9-1 17:28 编辑

应该是数据溢出了,int类型的占4个字节,能表示的数的范围大概是 -2^31~(2^31 - 1)
这个范围大概是 -2147483648~2147483647,明显你最后88888888888是11位了,所以结果不对换成 long int试试
回复 使用道具 举报
Joker_999 发表于 2015-9-1 17:26
应该是数据溢出了,int类型的占4个字节,能表示的数的范围大概是 -2^31~(2^31 - 1)
这个范围大概是 -214748 ...

谢谢!  我以为是有效数位错了,  居然把int数的范围搞忘记掉了!
回复 使用道具 举报
测试的时候不要用那么大的数字就行了~~~~~
回复 使用道具 举报
coding_wang 发表于 2015-9-1 19:34
测试的时候不要用那么大的数字就行了~~~~~

没想到啊!
回复 使用道具 举报
xcode应该会提示你用long int
回复 使用道具 举报
这里好像int类型函数存不了这么多位吧,试着用长整形吧,。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马