姜子牙疼 发表于 2021-9-1 21:03:09

s1e7第2题

#include <stdio.h>
#include <math.h>
int main()
{
        int i;
    long long j;
        scanf("%d",&i);
        j=pow(i,5);
        printf("%d的五次方是%d",i,j);
        return 0;
}

为什么不能用longlong定义j,要用double
用longlong出来答案是0

大马强 发表于 2021-9-1 21:56:11

函数原型
double pow( double x, double y );
规定就是这样,只能用doule类型

万千只cnm 发表于 2021-9-1 23:45:42

函数原型是那样,类型要匹配
你把浮点型赋值给整型肯定错了

人造人 发表于 2021-9-1 23:52:44

#include <stdio.h>
#include <math.h>
int main()
{
    int i;
    long long j;
    scanf("%d",&i);
    j=pow(i,5);
    //printf("%d的五次方是%d",i,j);
    printf("%d的五次方是%lld",i,j);
    return 0;
}

姜子牙疼 发表于 2021-9-2 08:51:01

大马强 发表于 2021-9-1 21:56
函数原型

规定就是这样,只能用doule类型

那s1e6那个舍罕王的题为什么没用double
#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;
}
页: [1]
查看完整版本: s1e7第2题