int a=3,b=2,c=7,d=6;long s;s=a*10000+b*1000+c*100+d*10+c+1;printf('%ld\n',s);运行的结果是-32768long定义的范围很大,算出来是32768,为什么前面有负号?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/16 02:05:55

int a=3,b=2,c=7,d=6;long s;s=a*10000+b*1000+c*100+d*10+c+1;printf('%ld\n',s);运行的结果是-32768long定义的范围很大,算出来是32768,为什么前面有负号?
int a=3,b=2,c=7,d=6;long s;s=a*10000+b*1000+c*100+d*10+c+1;printf('%ld\n',s);运行的结果是-32768
long定义的范围很大,算出来是32768,为什么前面有负号?

int a=3,b=2,c=7,d=6;long s;s=a*10000+b*1000+c*100+d*10+c+1;printf('%ld\n',s);运行的结果是-32768long定义的范围很大,算出来是32768,为什么前面有负号?
程序没有问题,但是请把printf(‘%ld\n’,s);改成双号
printf("%ld\n",s);