大侠看看我的程序错在那里
main(){
unsigned long a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("c=%u",c);
}
我刚学C,但这个程序如果输入两个很大的数相加,比如70000,结果就会错误。是哪里错了?
----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>
int main()
{
unsigned long a,b,c;
scanf("%ld%ld",&a,&b);
c=a+b;
printf("c=%ld",c);
return 0;
}
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啊,换个编译器吧
----------------解决方案--------------------------------------------------------
我也是新手,以后常来,帮顶...
----------------解决方案--------------------------------------------------------
谢谢
谢谢各位朋友,我知道问题了~!谢谢 ----------------解决方案--------------------------------------------------------
定义无符号长整型,输出为整型(加修饰).
----------------解决方案--------------------------------------------------------
超范围了吧?
----------------解决方案--------------------------------------------------------