我觉得菱形分为双数和单数:- static void Main(string[] args)
- {
- int i = 0, j = 0, a = 0, x = 0;
- bool flag = true;
- while (flag)
- {
- try
- {
- Console.WriteLine("输入数字?");
- x = Convert.ToInt32(Console.ReadLine());
- flag = false;
- }
- catch
- {
- Console.WriteLine("输入的数字有误");
- flag = true;
- }
- }
- if (x % 2 != 0) //单数中间打一行
- {
- //菱形上半部分(包含中间行)
- for (a = 1; a <= x / 2 + 1; a++) //打印行数
- {
- for (i = 1; i <= x / 2 + 1 - a; i++) //打印空格
- {
- Console.Write(" ");
- }
- for (j = 1; j <= 2 * a - 1; j++) //打印*
- {
- Console.Write("*");
- }
- Console.WriteLine();
- }
- //菱形下半部分(不包含中间行)
- for (a = 1; a <= x / 2; a++) //打印行数
- {
- for (i = 1; i <= a; i++) //打印空格
- {
- Console.Write(" ");
- }
- for (j = 1; j <= x - 2 * a; j++) //打印*
- {
- Console.Write("*");
- }
- Console.WriteLine();
- }
- }
- else //双数中间打两行
- {
- //菱形上半部分(包含中间行)
- for (a = 1; a <= x / 2 ; a++) //打印行数
- {
- for (i = 1; i <= x / 2 - a; i++) //打印空格
- {
- Console.Write(" ");
- }
- for (j = 1; j <= 2 * a - 1; j++) //打印*
- {
- Console.Write("*");
- }
- Console.WriteLine();
- }
- //菱形下半部分(不包含中间行)
- for (a = 1; a <= x / 2; a++) //打印行数
- {
- for (i = 1; i < a; i++) //打印空格
- {
- Console.Write(" ");
- }
- for (j = 1; j <= x - 2 * a+1; j++) //打印*
- {
- Console.Write("*");
- }
- Console.WriteLine();
- }
-
- }
- Console.ReadKey();
- }
复制代码 |