为了账号安全,请及时绑定邮箱和手机立即绑定

国王的许诺 代码在下面,可是结果好像溢出了 怎么破?

国王的许诺 代码在下面,可是结果好像溢出了 怎么破?

C
four7 2016-10-30 13:21:13
#include<stdio.h>int main(){    long x=1,i;    for(i=1;i<=64;i++)    {    x*=2; } printf("x=%ld",x-1); return 0;}
查看完整描述

4 回答

?
硕树

TA贡献14条经验 获得超6个赞


如果是这个小的溢出使用double即可,你也可以尝试使用list存储每部分数据然后计算


查看完整回答
反对 回复 2016-11-06
?
anyingxunlin

TA贡献1条经验 获得超0个赞

用long long试试,%lld。
查看完整回答
反对 回复 2016-10-30
?
望远

TA贡献1017条经验 获得超1032个赞

#include<stdio.h>
int main()
{
	double x=1,i;
    for(i=1;i<=64;i++)
    {
    x*=2;
}
printf("x=%g\n",x-1);
return 0;
}

//img1.sycdn.imooc.com//5815a0230001457d03160055.jpg

查看完整回答
反对 回复 2016-10-30
  • four7
    four7
    请问%g是啥意思?
  • 望远
    望远
    以%f%E中较短的输出宽度输出单、双精度实数,在指数小于-4或者大于等于精度时使用%E格式
?
Yexiaomo

TA贡献152条经验 获得超157个赞

用,double类型试一下,不行的话,数组
查看完整回答
反对 回复 2016-10-30
  • 4 回答
  • 0 关注
  • 2551 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信