0unique0 发表于 2022-11-15 16:13:52

printf("%d! = %1d",n,p)

printf("%d! =%1d",n,p)

在这个里面, %d! =%1d   是什么意思?

jackz007 发表于 2022-11-15 16:20:05

本帖最后由 jackz007 于 2022-11-15 16:23 编辑

   printf() 的字符串中除了转义字符、格式描述符具有特殊意义外,其它的都是普通字符,不可能成为表达式。
   %d 按十进制整数打印变量,%1d 按 1 位域宽打印十进制整数,至于 !和 = 不过就是字符串中一个普通字符而已。

tommyyu 发表于 2022-11-15 16:26:18

按 %d 打印 n, 然后打印 "! =",最后按 %1d 打印 p。

0unique0 发表于 2022-11-15 16:29:45

tommyyu 发表于 2022-11-15 16:26
按 %d 打印 n, 然后打印 "! =",最后按 %1d 打印 p。

如果我的p值特别大,那么我可不可以改变1   为2或者9什么的
让我的p值打印出来
就比如如果是 20! 我是打不出来的,得到的是负数

tommyyu 发表于 2022-11-15 16:37:53

0unique0 发表于 2022-11-15 16:29
如果我的p值特别大,那么我可不可以改变1   为2或者9什么的
让我的p值打印出来
就比如如果是 20! 我 ...

你可以使用高精度算法,或者你在读入数据的时候判断一下这个数会不会超出数据范围
页: [1]
查看完整版本: printf("%d! = %1d",n,p)