当前位置: 代码迷 >> C语言 >> 大侠看看我的程序错在那里
  详细解决方案

大侠看看我的程序错在那里

热度:33   发布时间:2008-03-13 17:34:13.0
大侠看看我的程序错在那里
main()
{
unsigned long a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("c=%u",c);
}
我刚学C,但这个程序如果输入两个很大的数相加,比如70000,结果就会错误。是哪里错了?
搜索更多相关的解决方案: main  printf  scanf  

----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>
int main()
{
    unsigned long a,b,c;
    scanf("%ld%ld",&a,&b);
    c=a+b;
    printf("c=%ld",c);
    return 0;
}

----------------解决方案--------------------------------------------------------
scanf("%d%d",&a,&b);你把这个改为:scanf("%ld%ld",&a,&b);试一下.
----------------解决方案--------------------------------------------------------
%u无符号整数,默认为unsigned int ,70000超出范围了,用"ld"试试
你的运行环境如果是32位的,应该不会出现这个问题,是不是还在用TC啊,换个编译器吧
----------------解决方案--------------------------------------------------------
我也是新手,以后常来,帮顶...
----------------解决方案--------------------------------------------------------
谢谢
谢谢各位朋友,我知道问题了~!谢谢
----------------解决方案--------------------------------------------------------
定义无符号长整型,输出为整型(加修饰).
----------------解决方案--------------------------------------------------------
超范围了吧?
----------------解决方案--------------------------------------------------------
  相关解决方案