|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
麻烦大佬解答啦:
问题1:下面上部分是我的代码,下半部分是模板代码(下图左边是我的代码,和右边模板代码基本一模一样--截图可能显示不出来),但为什么打印结果不同呢?
问题2:既然d表示有符号十进制数,那为什么早期几次课中%d的表示的是大于0的正整数呢?而在学习有符号无符号数之后则需换成%u。还是说只有当代码中事先声明了有符号无符号,才在后续printf中加以区分,否则不区分直接用%d也可以?
问题3:在【printf("舍罕王应该给予达依尔%11u粒麦子!\n", sum);】这个代码中,为什么提前设置数据宽度为11,我在写代码时虽然知道数字很大,但很多时候也不知道其宽度究竟有多大啊。
- #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;
- }
复制代码
。。。。字体的问题,他的代码
- printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
- printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
复制代码
u前面是两个 LL 小写的,你给看成了两个11,害。
基础不太牢固哦,建议淘本C语言的书在身边没事儿翻翻最好。
因为你定义的是 unsigned long long 所以,格式符组合就应该为:%llu,你直接记为首字母
再比如,你定义的是long(long int等价)长整型,格式符组合就应该为: %ld ,也是首字母
|
|