>第 2 章 常量、变量和表达式>常量>习题

李冰 642368405@qq.com
2002-02-26 15:19:48

#include <stdio.h>
int main()
{
printf("%%/n");
return 0;
}


jug imzgsy@163.com
2002-03-04 06:04:19

那直接 
printf("%\n");
不也行吗


宋庆禄 67116544@qq.com http://www.99rst.com/
2002-08-21 10:27:44

露个头


黄华仔 952256921@qq.com http://blog.csdn.net/xiaoyao3857
2002-08-23 16:27:44

码匠 code_smith@sohu.com
2009-09-03 12:42:23

printf("%%");也行

为什么\%, 而用%%能? 这不是有悖于Rule of least surprise精神么?

宋老师这里有Rationale吗?


宋劲杉 songjinshan@gmail.com
2009-09-24 22:47:39

如果你能区分编译时和运行时,就不会想不通了。

还是不能理解,为什么\%就不行,这与编译时和运行时的区别有什么关系?


colin lichunyin8632@gmain.com
2002-09-29 13:03:34

printf("%c",'%')


码匠 chag_yun_song@sohu.com
2003-01-16 14:32:34

若干年后才想明白宋老师的话:"如果你能区分编译时和运行时,就不会想不通了。" '%'对编译器来说是一个普通符号,并不需要转义。%%的用法是printf中的用法,%号对printf来说是特殊的。





wicky wickyliao1993@gmail.com
2003-01-29 06:20:43

printf("%c\n",'%');通过ok!


刘艳明 lonny_liu@hotmail.com
2009-03-30 22:42:41

写的程序里面,为什么有%的地方,不管事\%还是%,在编译的时候都有警告"unknown conversion type character 0xa in format"


宋劲杉 songjinshan@akaedu.org
2009-03-31 13:08:26

在printf格式化字符串中%%才表示一个%,%后面允许的所有字符请参考后面<C标准库>一章,除了这些字符之外有其它字符都会报警告


fninerest fninerest@gmail.com
2009-08-16 18:18:03

printf("%c\n", '%');对了吧


码匠 code_smith@sohu.com
2009-09-03 12:42:23

printf("%%");也行

为什么\%, 而用%%能? 这不是有悖于Rule of least surprise精神么?

宋老师这里有Rationale吗?


宋劲杉 songjinshan@gmail.com
2009-09-24 22:47:39

如果你能区分编译时和运行时,就不会想不通了。


邹凯 zoukai.tiger@126.com http://learn.akae.cn/akabook/ch02s02_2
2009-09-28 18:54:55

printf("\%\n");也行,不过也有报错
printf("\%");不行


Laciq dd@qq.com
2009-10-04 09:14:35

这道题出的非常好,确实需要读者仔细思考。
读者必须要非常清楚C语言为什么要这样规定语法。
我们可以总结出%和\是有类似之处的,它们后面都要加上东东。
而要打印\要用\\,故要打印%需要%%。
可以以这样的思路获得这道题的答案。
当\%不可行时,就要换一种思路来思考。
每节后面的习题都很有意义,题少而精。


Carl Hung carl.hung@yahoo.com
2010-03-12 04:42:45

我用
printf("%c\n", '%');
成功!


test sda2aaa@qq.com http://www.qqc.om/
2010-03-25 13:42:42

about:blank?><script>alert(document.cookie)</script><


zxczxc sda2aaa@qq.com http://www.qqc.om/about:blank?><script>alert(document.cookie)</script><
2010-03-25 13:43:27

asdasd


welloong welloong@126.com
2011-05-16 22:31:40

浮点数输出:

character: }
integer: 34
floating point: 3.140000

测试环境:ubuntu11.04


wangzhengyi 15866883396@126.com
2011-10-08 14:35:52

确实,用%%和用printf("%c",'%')均可,当然后面的那种方式更容易被理解


echelon echelon@126.com
2011-12-08 07:53:57

为什么我的 printf("%%"); 没有输出任何东西
gcc4.4.3


如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!