首页 > 解决方案 > C# 中的模式不知道如何创建

问题描述

我需要帮助在 C# 上创建这个特定的形状

链接到形状图像:https ://drive.google.com/file/d/1-5xzVHPm8xG4wvkcGgtZ4IBx2uSgwS4u/view?usp=sharing

我已经尝试制作这个形状很长一段时间了,但似乎无法正确地制作它,我目前的代码只是背靠背两次打印相同的第一个图案。

 using System;
 namespace Patterns   
 {  
 class Program  
 {  
 static void Main(string[] args)  
 {  
   int i, j, k;  
   for (i = 1; i <= 5; i++)  
   {  
     for (j = 1; j <= 6 - i; j++)  
     {  
       Console.Write("*");  
     }  
     for (k = 1; k < i; k++)  
     {  
       Console.Write(" ");  
     }  
     for (j = 1; j <= 6 - i; j++)  
     {  
       Console.Write("*");  
     }  
     Console.Write("\n");  
   }  
   for (i = 2; i <= 5; i++)  
   {  
     for (j = 1; j <= i; j++)  
     {  
       Console.Write("*");  
     }  
     for (k = 1; k <= 5 - i; k++)  
     {  
       Console.Write(" ");  
     }  
     for (j = 1; j <= i; j++)  
     {  
       Console.Write("*");  
     }  
     Console.WriteLine();  
   }      
 }  
 }  
 }

标签: c#

解决方案


蛮力的方法。一个简单的方法,带两个参数,一个是一行空格的个数,第二个参数是要写“*”字符的个数……</p>

 private static void WriteCharacters(int numSpaces, int numChars) {
  Console.Write(new string('*', numChars));
  Console.Write(new string(' ', numSpaces));
  Console.Write(new string('*', numChars));
  Console.WriteLine();
}

然后,写下所有九行……</p>

static void Main(string[] args) {
  WriteCharacters(2, 5);
  WriteCharacters(4, 4);
  WriteCharacters(6, 3);
  WriteCharacters(8, 2);
  WriteCharacters(10, 1);
  WriteCharacters(8, 2);
  WriteCharacters(6, 3);
  WriteCharacters(4, 4);
  WriteCharacters(2, 5);
  Console.ReadKey();
}

推荐阅读