课后作业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:24 编辑
第一个代码 格式化占位符错误了, 是 llu不是 11u:
printf("舍罕王应该给予达依尔%11u粒麦子!\n",sum);
printf("如果每25000粒麦子为1kg,那么应该给%11u公斤麦子!\n",weight);
第二个代码是正确的:
printf("舍罕王应该给予达依尔%llu粒麦子!\n",sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n",weight);
Twilight6 发表于 2020-7-20 17:16
第一个代码 格式化占位符错误了, 是 llu不是 11u:
那ll代表什么意思? observation 发表于 2020-7-21 09:29
那ll代表什么意思?
long long
页:
[1]