答應菱形
* 輸出菱形
* 輸入n,用*輸出邊長爲n的菱形(空心與實心兩種)
C#代碼實現如下:
這裏沒有使用數組。但思想是一樣的。
基本思想就是。按每一行進行打印,一行一行進行判斷。
例如:判斷第一行的所有列有哪些地方需要打印*號,哪些不需要,一行一行推下去就行。
//提示用戶輸入
Console.WriteLine("請輸入一個整數邊長以打印菱形:");
//定義n保存用戶輸入
int n = Int32.Parse(Console.ReadLine());
//打印空心
Console.WriteLine("邊長爲{0}空心菱形如下:", n);
for (int i = 1; i < 2 * n; i++)
{
for (int j = 1; j < 2 * n; j++)
{
if ((i + j == n + 1) || (j - i == n - 1) || (i - j == n - 1) || (i + j == 3 * n - 1))
{
Console.Write("*");
}
else
{
Console.Write(" ");
}
}
Console.WriteLine();
}
Console.WriteLine("-------------------------------");
//打印實心
Console.WriteLine("邊長爲{0}實心菱形如下:", n);
for (int i = 1; i < 2 * n; i++)
{
for (int j = 1; j < 2 * n; j++)
{
//滿足以下條件的打印*,否則打印空格
if (i <= n && i + j == n + 1)
{
for (int l = 1; l <= i; l++)
{
Console.Write("* ");
}
}
else if (i > n && i - j == n - 1)
{
for (int s = 1; s <= 2 * n - i; s++)
{
Console.Write("* ");
}
}
else
{
Console.Write(" ");
}
}
//打印一行後換行
Console.WriteLine();
}
以下是運行結果展示:
好了,這個問題就到這,有疑問可以私聊博主。
純手打。
給個關注唄!