鱼C论坛

 找回密码
 立即注册
查看: 2516|回复: 6

[已解决]S1E6的题目不会写

[复制链接]
发表于 2022-10-4 16:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问我的问题出在哪里?
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.         unsigned long long sum = 0;
  6.         unsigned long long temp;
  7.         unsigned long long weight;
  8.         int i;

  9.         for (i=0; i < 64; i++)
  10.         {
  11.                 temp = pow(2, i);
  12.                 sum = sum + temp;
  13.         }

  14.         weight = sum / 25000;

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

  17.         return 0;
  18. }
复制代码
最佳答案
2022-10-4 16:38:35
本帖最后由 jackz007 于 2022-10-4 16:41 编辑
  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         unsigned long long b , i , sum                                                     ;
  5.         for(b = 1 , i = sum = 0 ; i < 64 ; b *= 2 , i ++)  sum += b                        ;
  6.         printf("舍罕王应该给予达依尔 [%I64u] 粒麦子!\n" , sum)                              ;
  7.         printf("如果每 25000 粒麦子为 1 kg ,那么应该给 [%I64u] kg 麦子!\n", sum / 25000LL) ;
  8. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 舍罕王应该给予达依尔 [18446744073709551615] 粒麦子!
  4. 如果每 25000 粒麦子为 1 kg ,那么应该给 [737869762948382] kg 麦子!

  5. D:\[00.Exerciese.2022]\C>
复制代码
QQ图片20221004162131.png
SA%2MKCPRNJXP7ER68{5@M3.png
CF{P2VPSC~9CF@%RG5{W%`B.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-4 16:38:35 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-10-4 16:41 编辑
  1. #include <stdio.h>

  2. main(void)
  3. {
  4.         unsigned long long b , i , sum                                                     ;
  5.         for(b = 1 , i = sum = 0 ; i < 64 ; b *= 2 , i ++)  sum += b                        ;
  6.         printf("舍罕王应该给予达依尔 [%I64u] 粒麦子!\n" , sum)                              ;
  7.         printf("如果每 25000 粒麦子为 1 kg ,那么应该给 [%I64u] kg 麦子!\n", sum / 25000LL) ;
  8. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 舍罕王应该给予达依尔 [18446744073709551615] 粒麦子!
  4. 如果每 25000 粒麦子为 1 kg ,那么应该给 [737869762948382] kg 麦子!

  5. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 16:52:49 | 显示全部楼层
jackz007 发表于 2022-10-4 16:38
编译、运行实况:

[%I64u]这个知识点是什么,我去看一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 17:25:00 | 显示全部楼层
追光THO 发表于 2022-10-4 16:52
[%I64u]这个知识点是什么,我去看一下。

      没什么特别的,就是把一个 unsigned long long 显示在 [] 里面。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 17:47:49 | 显示全部楼层
这用的是什么 C 标准库,为什么 %llu 不能正常工作呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-4 19:58:42 | 显示全部楼层
dolly_yos2 发表于 2022-10-4 17:47
这用的是什么 C 标准库,为什么 %llu 不能正常工作呢

啥意思,我不太懂,我写的代码哪里有问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-4 21:41:31 | 显示全部楼层
本帖最后由 临时号 于 2022-10-4 21:45 编辑
dolly_yos2 发表于 2022-10-4 17:47
这用的是什么 C 标准库,为什么 %llu 不能正常工作呢


%llu是gcc的格式化字符,%I64u是Microsoft库的格式化字符,
楼主所用的Code::Blocks使用的是mingw-gcc,mingw-gcc在编译期间使用gcc的规则检查语法,在连接和运行时使用的却是Microsoft库,所以需要使用%I64u
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 20:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表