275690930 发表于 2018-1-15 10:33:05

c语音

#include <stdio.h>
#include <math.h>

int main()
{
    int i = 0;
    unsigned long long sum = 0 ,weight,temp;

    for(;i <= 63;i++)
    {
      temp = pow(2,i);
      sum = sum + temp;
    }

    printf("舍罕王米粒数 = %llu\n",sum);
    weight = sum/25000;
    printf("舍罕王应该给予达依尔 %llu 斤麦子\n ",weight);

    return 0 ;
}
为什么pow函数计算出的结果一定要用一个temp变量来存放,而不能sum = sum + pow(2,i),这样输出的都是0??

BngThea 发表于 2018-1-15 10:45:40

实测在我的电脑上写成
sum += pow(2,i)
结果正确

275690930 发表于 2018-1-15 10:47:53

BngThea 发表于 2018-1-15 10:45
实测在我的电脑上写成
sum += pow(2,i)
结果正确

不会吧。。。我原来那样写的算出结果是两个都是0,搞不明白,现在不方便再试,晚点再重新试试,谢谢了

275690930 发表于 2018-1-17 07:35:11

BngThea 发表于 2018-1-15 10:45
实测在我的电脑上写成
sum += pow(2,i)
结果正确

重新试过了,那样写打印结果就是两个零{:10_266:}{:10_266:},电脑原因吗,无语

BngThea 发表于 2018-1-17 07:49:50

275690930 发表于 2018-1-17 07:35
重新试过了,那样写打印结果就是两个零,电脑原因吗,无语

无法理解

小罗 发表于 2018-1-17 08:46:27

没初始化吧,sum都初始化了

275690930 发表于 2018-1-17 11:37:50

小罗 发表于 2018-1-17 08:46
没初始化吧,sum都初始化了

sum初始化是因为要用于计算,而temp,weight只是用于存放,不影响啊

275690930 发表于 2018-1-17 11:39:16

BngThea 发表于 2018-1-17 07:49
无法理解

我也不理解。。。但是电脑确实是那样的{:10_266:}{:10_266:},给个你的截图看看呗,感激,怀疑电脑的问题了

BngThea 发表于 2018-1-17 12:49:53

275690930 发表于 2018-1-17 13:18:07

BngThea 发表于 2018-1-17 12:49


你的结果和我算的不一样,不过不影响,我用手机编译器也是可以得到结果的,用法没错,谢谢了,估计硬件或者其它的问题吧,害我一脸懵逼{:10_250:}{:10_250:}
页: [1]
查看完整版本: c语音