| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:求助程序问题··
只看楼主 加入收藏
liquan1989
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-1-18
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
求助程序问题··
看这个代码  小弟学浅 没看懂·
#include <stdio.h>

int a=1;

int main(void)
{
 printf("%*s\n", 7-(a>4?a-4:4-a), "*******"+2*(a>4?a-4:4-a));
 if(++a!= 8) main();
 return 0;
}

输出是个菱形
希望大牛们 给个详细的解说

[ 本帖最后由 liquan1989 于 2010-3-28 22:26 编辑 ]
2010-03-28 22:25
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:20 
用递归main()的方法通过改变a的值来打印每一行.
printf("%*s\n", 7-(a>4?a-4:4-a), "*******"+2*(a>4?a-4:4-a));
7-(a>4?a-4:4-a)为指定输出数据的宽度,当数据本身的实际宽度小于它时,数据左端补空格;若大于它,则按数据的实际位数输出。
"*******"+2*(a>4?a-4:4-a)用于计算显示多少个星号,如  a = 2时,为"*******"+2*2 --->输出的是"***",即是"*******"字符串加了4个偏移
自己随便代个小于8的a的值进去看一下就知道结果了

希望对你有帮助~~~
2010-03-28 23:04
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
学习了!
2010-03-29 08:10
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:0 
接分。

想象力征服世界
2010-03-29 12:41
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
收藏
得分:0 
这段代码写得非常强悍啊
2010-03-29 14:39
快速回复:求助程序问题··
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011254 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved