天之蔲 发表于 2020-11-5 12:09:22

有没有大佬帮忙解释一下每行代码的意思呀?这个课后作业我有点似懂非懂。

本帖最后由 天之蔲 于 2020-11-5 12:14 编辑




[*]#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;
[*]}

jackz007 发表于 2020-11-5 12:13:16

       如此简单的代码都看不明白,你就不应该修这门课程啊!

昨非 发表于 2020-11-5 12:50:52

#include <stdio.h>
#include <math.h>
int main()
{
        unsigned long long sum = 0;//定义三个高精度数,分别代表 总和(sum),当前格子内的麦子(temp),和重量(weight)
        unsigned long long temp;
        unsigned long long weight;
        int i;//循环变量
        for (i = 0; i < 64; i++)   //循环,i从零到64
        {
                temp = pow(2, i);      //temp等于2的i次方
                sum = sum + temp;   //将temp加到sum中去
        }
        //到这一步,循环结束,sum等于2+4+8+16+32+64+128+.......+2^64
        weight = sum / 25000;//除以25000得到总重量
        //输出
        printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);

        printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
        return 0;
}

昨非 发表于 2020-11-5 12:51:27

满意的话,还请给个最佳答案

天之蔲 发表于 2020-11-5 13:11:07

昨非 发表于 2020-11-5 12:51
满意的话,还请给个最佳答案

那个为什么要定义sum为0呀{:9_241:}

昨非 发表于 2020-11-5 13:12:43

天之蔲 发表于 2020-11-5 13:11
那个为什么要定义sum为0呀

用sum来统计总数,初始化为0,然后在零的基础上加

天之蔲 发表于 2020-11-5 13:14:51

昨非 发表于 2020-11-5 13:12
用sum来统计总数,初始化为0,然后在零的基础上加

明白了,谢谢大佬
页: [1]
查看完整版本: 有没有大佬帮忙解释一下每行代码的意思呀?这个课后作业我有点似懂非懂。