sadangbeng 发表于 2019-10-3 10:04:05

C课程S1E6 pow

见图,运行了课后作业1题,与小甲鱼的一样,望指教。
#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;
}

2164930278 发表于 2019-10-3 10:04:06

楼主应该是这里错。。。
看附件。。。。
函数概要:

1. pow(x, y) 用于求 x 的 y 次幂。

2. gcc 编译需要加上 -lm 选项。

juhugufudu 发表于 2019-10-3 10:25:05

类型都改成double(i 除外)试试

juhugufudu 发表于 2019-10-3 10:27:10

juhugufudu 发表于 2019-10-3 10:25
类型都改成double(i 除外)试试
#include <stdio.h>
#include <math.h>

int main()
{
    double sum = 0;
    double temp;
    double weight;
    int i;

    for (i=0; i < 64; i++)
    {
      temp = pow(2, i);
      sum = sum + temp;
    }

    weight = sum / 25000;

    printf("舍罕王应该给予达依尔%.2lf粒麦子!\n", sum);
    printf("如果每25000粒麦子为1kg,那么应该给%.2lf公斤麦子!\n", weight);

    return 0;
}
结果如下:
舍罕王应该给予达依尔18446744073709552000.00粒麦子!
如果每25000粒麦子为1kg,那么应该给737869762948382.12公斤麦子!

--------------------------------
Process exited after 0.2779 seconds with return value 0
请按任意键继续. . .


sadangbeng 发表于 2019-10-3 16:57:01

juhugufudu 发表于 2019-10-3 10:27
结果如下:
舍罕王应该给予达依尔18446744073709552000.00粒麦子!
如果每25000粒麦子为1kg,那么应该 ...

不行

北极冰枪 发表于 2019-10-4 12:09:48

你代码没有错啊,你看看是不是你是否有其他代码没有关闭导致的

2164930278 发表于 2019-10-4 20:27:32

楼主应该是这里错。。。
看附件。。。。
函数概要:

1. pow(x, y) 用于求 x 的 y 次幂。

2. gcc 编译需要加上 -lm 选项。
页: [1]
查看完整版本: C课程S1E6 pow