使用C语言打印出一个菱形:
记得还是上C语课的时候,自己使用过一个比较笨的方法写过7行的实心菱形,但是今天一同学问我,让我帮他写这个程序时缺一时键不知到怎么写。然后自己就把这个算法模拟了一辩,使用了三种方法实现了打印菱形。
代码如下:
#include
using namespace std;
【使用C语言打印出一个菱形】void diomand(int r)// 打印空心菱形
{
for (int x=0;
x <= 2 * r;
x++)
{
for (int y=0;
y <= 2 * r;
y++)
{
if (y==x+r||y==x-r||y==-x+r||y==-x+3*r)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
// 方法一分步打印
void rhombus(int len)
{
int i, j, k;
//int m = len / 2+1;
// 记录前len/2+1行;
// 打印出前len/2+1行
for (i = 0;
i <=len / 2 + 1;
i++)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0;
j < len / 2 + 1 - i;
j++)
{
cout<<" ";
}
// 开始输出“*”
for (k = 0;
k < 2 * i + 1;
k++)
{
cout<<"*";
}
cout<
// 打印出后len/2-1行
for (i = len/2;
i>=0;
i--)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0;
j <=len / 2 - i;
j++)
{
cout << " ";
}
// 开始输出“*”
for (k = 0;
k < 2 * i + 1;
k++)
{
cout << "*";
}
cout << endl;
}
}
// 方法二:// 按条件输出“*”和“ ”
void rhombus2(int len)
{
for (int i = 0;
i
for (int j = 0;
j < len;
j++)
{
if (i + j <= len/2-1 || (j - i >= len/2+1 || i - j >= len/2+1) || i + j >=len+len/2)
{
cout << " ";
}
else
{
cout << "*";
}
}
cout << endl;
}
}
int main(void)
{
int r = 0;
int m = 0;
cin >> r;
diomand(r);
// 打印出空心菱形
//rhombus(7);
rhombus1(r);
// 分步打印实心菱形
cin >> m;
rhombus2(m);
// 按条件打印出实心菱形
return 0;
}
推荐阅读
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- C/C++|C/C++ basis 02
- Qt实战|Qt+OpenCV联合开发(二十一)--图像翻转与旋转
- Qt实战|Qt+OpenCV联合开发(十四)--图像感兴趣区域(ROI)的提取
- Qt实战|Qt+OpenCV联合开发(十三)--通道分离与合并
- opencv|Qt+OpenCV联合开发(十六)--图像几何形状绘制
- Qt实战|Qt+OpenCV联合开发(十七)--随机数与随机颜色
- SNAT的MASQUERADE地址选择与端口选择
- IPTABLES的连接跟踪与NAT分析
- IPVS分析