社区
C语言
帖子详情
求教~
tair
2005-08-04 08:17:24
#include <stdio.h>
main(int _)
{
while(_!=10){printf("%*s\n",_<=5?4+_:14-_,"*********"+(_<=5?10-2*_:2*_-10));_++;}
}
觉得很cool,但百思不得其解,求那位好心的大虾给点注释
...全文
149
11
打赏
收藏
求教~
#include main(int _) { while(_!=10){printf("%*s\n",_<=5?4+_:14-_,"*********"+(_<=5?10-2*_:2*_-10));_++;} } 觉得很cool,但百思不得其解,求那位好心的大虾给点注释
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
newbiestar
2005-08-12
打赏
举报
回复
首先重新排版:
#include <stdio.h>
main(int _)
{
while(_!=10)
{
printf("%*s\n",_<=5?4+_:14-_,"*********"+(_<=5?10-2*_:2*_-10));
_++;
}
}
然后逐步分析,_一开始应该是1,printf被调用9次,%*s这个格式是通过*来控制输出宽度,s么不用说了。printf的第二个参数控制宽度,第三个参数控制星号数量。第二个参数在_<= 5的时候是4+_,否则是14-_,这样用来保证菱形的形状正确。第三个参数么其实就是"123"+1就是"23",这样的话,这个代码的作用应该很明白了吧?
edarw
2005-08-12
打赏
举报
回复
这个还是用到些很基本的知识的。
1._变量的初始值,不带参数执行是为1。
2."*********"+n是移指针操作,用于控制实际输出的字符数。
3.*参数化宽度标识符。
duwan
2005-08-11
打赏
举报
回复
不是吧,没人会!
duwan
2005-08-07
打赏
举报
回复
有没有大牛帮忙解读一下
xiaocai0001
2005-08-06
打赏
举报
回复
这种写法只能用来玩玩,实际编程中,谁也不会这么写的。看看吧,实在不明白也没有什么大不了的
duwan
2005-08-06
打赏
举报
回复
表示可能通过一个int类型的参数限定输出的长度:
prinf
(”%10s”,sValue);
与
printf(”%*s”,10,sValue);
表示一样的意义。也就是说占10位不够10位补空格
duwan
2005-08-06
打赏
举报
回复
int f(int _)
{
return printf("%*s",4+_,"*******\n"+(4-_<<1));}
int main(int _){return f(_)&&_<4&&main(_+1)&&f(_),_<5;}
我又找到一个看不懂的
baliang_huan
2005-08-04
打赏
举报
回复
楼上说的对。。。其实基本格式就是:
printf("%*s\n",输出值的宽度,要输出的值);
_++;
不过从输出的结果来看,就不知道具体应该怎么理解了。。。
哪位大虾可以指点一下,它输出的其实是一个菱形,
jixingzhong
2005-08-04
打赏
举报
回复
采用”*”来占用一个本来需要一
个指定宽度或精度的常数数字的位置,
就是输出后面的 串之前
先占用了一个位置 (一个空格效果一样) ...
snowbirdfly
2005-08-04
打赏
举报
回复
int _开始时,系统默认"_"值为0,然后再处理while语句。
然后%*s就不太理解!
lbing7
2005-08-04
打赏
举报
回复
这就是玩了那个唯一的三元运算符
你慢慢的解开哈!
求教
一道关于求解最优化问题的编程问题~
求教
一道关于求解最优化问题的编程问题~
公式
求教
共4页.pdf.zip
公式
求教
共4页.pdf.zip
数据处理救星降世Power Query
0/ Excel数据处理新利器来了,准备好了吗? 1/ 比网红函数VLOOKUP还全面的功能。——查(查询) 2/ 取其精华,去其糟粕。...——聚(聚合) 9/ 我自己的难题自己造函数,不
求教
别人。——技法(自定义函数)
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章