作业帮 > 综合 > 作业

C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/04 17:45:55
C语言乘法计算溢出
long a,b,c;
c=a*b/100;
a*b是超过4294967295的,但是a*b/100是绝对不超过4294967295.我前面的程序对a、b有限制
有没什么方法计算能不溢出呢?
(如果先对a、b先除100,这样的话,精度有影响.a是变量,如果先除100的话,当a小于100时就出错了)
如果先转化为float计算的话,float精度只有7位,也不够.所以郁闷
C语言乘法计算溢出long a,b,c;c=a*b/100;a*b是超过4294967295的,但是a*b/100是绝对
把c=a*b/100;改成c=a/100*b;或c=a*(b/100);试试.