求帮助
#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;
}
去掉unsigned long long sum = 0;和sum = sum + temp;
将sum全部改为temp变成代码
#include <stdio.h>
#include <math.h>
int main()
{
unsigned long longweight;
unsigned long longtemp;
int i;
for (i = 0; i < 64; i++)
{
temp = pow(2, i);
}
weight = temp / 25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n", temp);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
}
输出结果为什么小了一半 第二个根本就没累加呀,直接 temp = pow(2,63), weight = temp/25000
如果是要累加的话,应该是第一个
变量都叫 temp 了,temporary 暂时的 unsigned long longtemp=0;//初值赋0
temp += pow(2, i);//没有加在一起 不再想起y 发表于 2018-8-11 10:31
unsigned long longtemp=0;//初值赋0
temp += pow(2, i);//没有加在一起
这样出来输出的值为0 claws0n 发表于 2018-8-11 10:28
第二个根本就没累加呀,直接 temp = pow(2,63), weight = temp/25000
如果是要累加的话,应该是第一个
累加怎么表示呢 329759546 发表于 2018-8-11 10:42
累加怎么表示呢
temp += pow(2,1); claws0n 发表于 2018-8-11 11:00
temp += pow(2,1);
谢谢 本帖最后由 claws0n 于 2018-8-11 14:36 编辑
329759546 发表于 2018-8-11 14:21
谢谢
打错了,不好意思。pow(2,i) ,变量 i 要进去才会改变
记得评选最佳答案{:10_254:}
页:
[1]