observation 发表于 2020-7-20 17:16:33

课后作业s1e6

#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("舍罕王应该给予达依尔%11u粒麦子!\n",sum);
        printf("如果每25000粒麦子为1kg,那么应该给%11u公斤麦子!\n",weight);
       
        return 0;
}





这两段代码有什么不一样吗,为什么输出的数值差好多?







#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;
}

Twilight6 发表于 2020-7-20 17:16:34

本帖最后由 Twilight6 于 2020-7-20 17:24 编辑


第一个代码 格式化占位符错误了, 是 llu不是 11u:

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

第二个代码是正确的:

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

observation 发表于 2020-7-21 09:29:31

Twilight6 发表于 2020-7-20 17:16
第一个代码 格式化占位符错误了, 是 llu不是 11u:




那ll代表什么意思?

Twilight6 发表于 2020-7-21 09:30:03

observation 发表于 2020-7-21 09:29
那ll代表什么意思?

long long
页: [1]
查看完整版本: 课后作业s1e6