使用C语言打印出一个菱形

使用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;
}



    推荐阅读