棱形图案写法

来源:岁月联盟 编辑:zhu 时间:2009-02-15
#include <iostream>
#include <math.h>
using namespace std;
#define N 7
int main()
{
for(int i(0);i<N;i++)
{
if(i<(N/2))
{ for(int j(0);j<abs(int(N/2)-i);j++)
cout<<" ";
for(int k(0);k<2*i+1;k++)
cout<<"*";
}
else
{
for(int j(0);j<abs(int(N/2)-i);j++)
cout<<" ";
for(int k(0);k<2*(N-i)-1;k++)
cout<<"*";
}


cout<<endl;
}
return 0;
}

结果符合要求
*
***
*****
*******
*****
***
*
感觉写的不太好 应该可以把两个合为一句的


以正中间那个为原点建立坐标的方法,有点简单了

#include<iostream>
using namespace std;
int main()
{
int x,y;
cout << "请输入行数:";
int q;
cin>>q;
int i=(q/2);
for(x = -i;x<=i;x++)
{
for(y=-i;y<=i;y++)
{
if(abs(x)+abs(y)<=i)
{
cout <<"*";
}
else
{
cout <<" ";
}
}
cout<<endl;
}
return 0;
}
下一篇:C预处理和宏

图片内容