|
3鱼币
- #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);
|
最佳答案
查看完整内容
第一个代码 格式化占位符错误了, 是 llu 不是 11u:
第二个代码是正确的:
|