关于printf格式列表
for (int i=0,j=0;j<k*2-1;j++,j<k?i++:i--) printf("%*s*%*s\n",k-i,"",i*2,i!=0?"*":"");
怎么理解?
----------------解决方案--------------------------------------------------------
printf("%*s",5,"c");
这里的星号是代表字符串的长度 后面对应的 5 就是长度
printf("%*s*%*s\n",k-i,"",i*2,i!=0?"*":"");
在看这个
黄色的部分 是来打印前面的空格和有多少个空格
绿色的部分 是来打印左边一边的星号
红色的部分 是来打印右边一边的星号
应为菱形的两头 左边的星号和右边的星号会重复打印 所以红色绿字的部分是来控制右边的部分 在打印的两头的时候 不在打印星号而是空格
----------------解决方案--------------------------------------------------------
以下是引用mp3aaa在2007-7-30 15:04:21的发言:
printf("%*s",5,"c");
这里的星号是代表字符串的长度 后面对应的 5 就是长度
printf("%*s*%*s\n",k-i,"",i*2,i!=0?"*":"");
在看这个
黄色的部分 是来打印前面的空格和有多少个空格
绿色的部分 是来打印左边一边的星号
红色的部分 是来打印右边一边的星号
应为菱形的两头 左边的星号和右边的星号会重复打印 所以红色绿字的部分是来控制右边的部分 在打印的两头的时候 不在打印星号而是空格
printf("%*s",5,"c");
这里的星号是代表字符串的长度 后面对应的 5 就是长度
printf("%*s*%*s\n",k-i,"",i*2,i!=0?"*":"");
在看这个
黄色的部分 是来打印前面的空格和有多少个空格
绿色的部分 是来打印左边一边的星号
红色的部分 是来打印右边一边的星号
应为菱形的两头 左边的星号和右边的星号会重复打印 所以红色绿字的部分是来控制右边的部分 在打印的两头的时候 不在打印星号而是空格
这种‘*’的用法怎么没见过?
----------------解决方案--------------------------------------------------------
谭浩强的《C程序设计》第二版上有一点介绍,在80页。
----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-7-30 23:56:19的发言:
谭浩强的《C程序设计》第二版上有一点介绍,在80页。
谭浩强的《C程序设计》第二版上有一点介绍,在80页。
那个是在scanf里的
在printf里 ‘*’ 用法就没讲
----------------解决方案--------------------------------------------------------
哦,是啊,谢谢指证,看书太不认真了
----------------解决方案--------------------------------------------------------
谢谢各位啦,我知道了
----------------解决方案--------------------------------------------------------
回复:(zklhp)以下是引用mp3aaa在2007-7-30 15:04:2...
有点晕~~~
----------------解决方案--------------------------------------------------------