当前位置: 代码迷 >> C语言 >> 打印这个图形用for循环做;
  详细解决方案

打印这个图形用for循环做;

热度:325   发布时间:2007-09-30 00:27:58.0

简单


----------------解决方案--------------------------------------------------------
以下是引用雨中飞燕在2007-9-29 20:59:29的发言:
运行速度同样快的话,程序当然越短越容易理解越好
不过我习惯性地压缩了一小下,main里面变5行了

#include <iostream>
#include <cmath>
using namespace std;
#define PC(x) putchar(x)
int main()
{
int n,y,x;
cin>>n;//或者scanf("%d", &n);
for(y=-n+1;y<n;++y)
for(x=-n+1;x<n||(PC(10),0);++x)
abs(x)+abs(y)<n?PC('0'-abs(x)+n):PC(' ');
return 0;
}


by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/

姐姐的精练,但我觉得VBC哥哥的容易理解.


----------------解决方案--------------------------------------------------------
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,y,x;
cin>>n;//或者scanf("%d", &n);
for(y=-n+1;y<n;++y)
{
for(x=-n+1;x<n;++x)
if(abs(x)+abs(y)<n)putchar('0'-abs(x)+n); else putchar(' ');
putchar('\n');
}
return 0;
}
很难理解吗?只是你没有展开来看而已



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------
4楼的很猛哦~
----------------解决方案--------------------------------------------------------
  相关解决方案