注册 登录
编程论坛 C++教室

这个程序输出这样的图形

askCpp 发布于 2007-09-24 13:06, 877 次点击

这个程序输出这样的图形: ,高手叫不要见笑我呢,我知道这个程序很差,但是我没怎么编过程,所以也只能写成这样呢,5555
#
###
#####
#######
#########
#######
#####
###
#

#include <iostream>
using namespace std;

int main()
{
cout<<"Input a number:";
int m,n,num;
cin>>num;
int halfNum=num/2,remainNum=num%2;
if(remainNum==0)
{
for(m=0;m<=halfNum-1;m++)
{
for(int i=halfNum-(m+1);i>0;i--)
cout<<' ';
for(int j=2*m+1;j>0;j--)
cout<<'#';
for(int k=halfNum-(m+1);k>0;k--)
cout<<' ';
cout<<endl;
}
for(n=0;n<=halfNum-1;n++)
{
for(int i=0;i<n;i++)
cout<<' ';
for(int j=(num-2*n)-1;j>0;j--)
cout<<'#';
for(int k=0;k<n;k++)
cout<<' ';
cout<<endl;
}
}
else if(remainNum!=0)
{
for(m=0;m<=halfNum;m++)
{
for(int i=halfNum-m;i>0;i--)
cout<<' ';
for(int j=2*m+1;j>0;j--)
cout<<'#';
for(int k=halfNum-m;k>0;k--)
cout<<' ';
cout<<endl;
}
for(n=0;n<halfNum;n++)
{
for(int i=0;i<n+1;i++)
cout<<' ';
for(int j=num-2*(n+1);j>0;j--)
cout<<'#';
for(int k=0;k<n+1;k++)
cout<<' ';
cout<<endl;
}
}
return 0;
}




[此贴子已经被作者于2007-9-24 13:10:02编辑过]

10 回复
#2
雨中飞燕2007-09-24 13:58
写出来就不错了,不过如果你认真思考一下,你会发现可以写出非常简短的代码



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/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/
#3
askCpp2007-09-24 14:31
版主你发发你写的?
我看看是怎么写的
#4
雨中飞燕2007-09-24 14:44
#include <iostream>
#include <cmath>
using namespace std;
#define PC(x) putchar(x)
int main()
{
int n=4;
for(int y=-n;y<=n;++y)
for(int x=-n;x<=n || (PC(10),0);++x)
(abs(x)+abs(y)<=n)?PC('#'):PC(' ');
return 0;
}


by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/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/
#5
askCpp2007-09-24 15:23

好厉害,不过我看不懂for(int x=-n;x<=n || (PC(10),0);++x)
能否解释下程序的流程?

#6
雨中飞燕2007-09-24 16:09

你把它展开就清楚了嘛~~~~~~~~~~~~
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n=4;
for(int y=-n; y<=n; ++y)
{
for(int x=-n; x<=n; ++x)
{
if(abs(x)+abs(y)<=n)
putchar('#');
else
putchar(' ');
}
putchar('\n');
}
return 0;
}



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/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/

#7
zz2092007-09-24 16:43
代码太乱了 可以精简
#8
askCpp2007-09-24 20:22

我怎么就这么笨呢?
一点算法的思想都没有
悲哀

#9
aipb20072007-09-24 22:09

初学的话能写出来就不错了,其他的要靠积累。

才学的时候,我连
*
**
***

都弄不出来

#10
coachard2007-09-24 22:57
小燕子不是写过四行代码吗???
#11
雨中飞燕2007-09-24 23:39
以下是引用coachard在2007-9-24 22:57:46的发言:
小燕子不是写过四行代码吗???

这个不就是了吗?



by 雨中飞燕 QQ:78803110 C/C++讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/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/

1