思路:简单来看就是一个直角三角形的空格+等边三角形的*
实心菱形
Console.WriteLine("输入行数");
int x = int.Parse(Console.ReadLine()); //x是一半菱形的行数
for (int i=0;i<=2*x;i++)
{
if(i<x)//打印上半部分的*
{
for (int z = 0; z < x - i; z++)
{
Console.Write(" ");
}
for (int j = 1; j <= i; j++)
{
Console.Write("* ");
}
Console.Write("\n");
}
else
{
for (int b = 0; b < i-x; b++)
{
Console.Write(" ");
}
for (int a = 1; a <= 2*x-i; a++)
{
Console.Write("* ");
}
Console.Write("\n");
}
}
其实下半部分的菱形“*”和“ ”的代码只是互相换了一下而已;
空心菱形
空心就是每一行只有第一个和最后一个有 *;
因为这段代码中是用* (*+ 空格)来输入每一行的*;
所以在else中要输入两个空格;
for (int j = 1; j <= i; j++)
{
if(j==1||j==i)
{
Console.Write("* ");
}
else
{
Console.Write(" ");
}
}
完整的空心菱形代码
Console.WriteLine("输入行数");
int x = int.Parse(Console.ReadLine());
for (int i=0;i<=2*x;i++)
{
if(i<x)
{
for (int z = 0; z < x - i; z++)
{
Console.Write(" ");
}
for (int j = 1; j <= i; j++)
{
if(j==1||j==i)
{
Console.Write("* ");
}
else
{
Console.Write(" ");
}
}
Console.Write("\n");
}
else
{
for (int b = 0; b < i-x; b++)
{
Console.Write(" ");
}
for (int a = 1; a <= 2*x-i; a++)
{
if(a==1||a==2*x-i)
{
Console.Write("* ");
}
else
{
Console.Write(" ");
}
}
Console.Write("\n");
}
学习中.....有问题可以一起讨论哦