c语言课后题求助
《带你学C带你飞》【第一季】[课后作业] S1E6:数据类型动动手 1.舍罕王的失算 详情请见:https://fishc.com.cn/forum.php?mod=viewthread&tid=67054&extra=page%3D1%26filter%3Dtypeid%26typeid%3D570
感觉自己的程序和答案一样(反复对照了好几遍),但就是求不出最后的结果,求大佬解答{:5_111:}
我是windows环境,程序如下:
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
int i;
for(i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
printf("舍罕王应当给宰相%11u粒麦子\n", sum);
printf("这些麦子相当于%11ukg!!!\n", weight);
return 0;
}
应该是内置的pow函数的参数问题
你可以这样写
temp = pow(2.0, double(i)) expected expression before 'double'
刚才试了一下,编译器报错。。。
我试过参考答案可以算出,参考答案如下:
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
int i;
for (i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
}
感觉和我的是一样的。。。 20,21行你把llu写成11u了,一个是字母l,一个是数字1 。。。
感谢!{:5_95:} BngThea 发表于 2019-1-9 11:03
应该是内置的pow函数的参数问题
你可以这样写
temp = pow(2.0, double(i))
感谢
页:
[1]