求助
#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;
}
为什么这里只有sum 被赋值了 而temp与weight可以不被赋值,为什么不给sum赋值结果会不正确?谢谢 sum充当累加器的功能,它初始值如果不是0
你猜结果能否正确 本帖最后由 jhq999 于 2022-11-23 10:47 编辑
说明白点,一个是白手起家,一个是富二代,如果手里有个小目标,白手起家是他自己赚的,富二代这个小目标里有多少是他继承的,不知道 unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
sum 先使用 后赋值,不提前确定初始值会出问题
temp weight 都是运行中先被赋值。
#include <stdio.h>
#include <math.h>
/**
* @brief
* sum累加需要sum初值,weight也需要sum初值,所以给sum赋初值,
* 当然你给temp和weight赋值也不会改变结果
* @return
*/
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);//temp调用系统函数赋值
sum = sum + temp;//sum+=temp需要sum的值
}
weight = sum / 25000;//给weight赋值也需要temp
printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
}
页:
[1]