zip... 发表于 2021-2-20 15:25:12

第六课的课后作业

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

int main()
{
        unsigned long longsum = 0;
        unsigned long longtemp;
        unsigned long longweight;
        int i;
       
        for (i=0; i < 64; i++)
        {
                temp = pow(2, i);
                sum = sum + temp;
        }
       
        weight = sum / 25000;
       
        printf("舍罕王应该给予达依尔%11u粒麦子\n",sum);
        printf("如果每25000粒麦子为1kg,那么应该给%11u公斤麦子\n",weight);
       
        return 0;
}

这段代码是我写的,和课后作业结果不一样。我也没有看出来我的错误,求大神帮助。

李京 发表于 2021-2-20 15:36:30

你应该和小甲鱼用的不是一个编译器,
结果不一样也有可能,
这就要看你的电脑的 unsigned long long 这个类型最大能存放多少了

因为最后的结果溢出了

昨非 发表于 2021-2-20 15:37:36

检查一下printf的格式控制串里,%llu(LLU)的LL是不是打成了数字11
页: [1]
查看完整版本: 第六课的课后作业