通过for循环打印各种星阵(三角,菱形,空心系列)
在很多的笔试题中都会出现打印星阵的题目(简单的平行四边形,三角形,菱形到复杂的空心系列),其实考察的就是对循环的灵活应用
和简单的逻辑。虽然这个题目真的让我很讨厌。
刚开始学习的时候使用的都是最基本的for嵌套,每次只打印一个*号,但是后来通过同学的指点我发现在C#中完全可以通过使用String的
构造函数进行替换这样就会减少对for的嵌套(”编程的目的就是为了让程序员偷懒“这句话是正确的)。虽然这种方法可能会被一些大牛所
鄙视,但这种方法写起来还是比较容易理解的。在下面的代码中,我们通过String的构造函数(char c,int count)可以创建出指定长度相同字符字符串。
Sain's Code
1 /// <summary> 2 /// 平行四边形 3 /// </summary> 4 /// <param name="row">行数</param> 5 /// <param name="col">每行显示多少个*号</param> 6 static void Parallelogram(int row,int col) 7 { 8 for (int i = 1; i <= row; i++) 9 { 10 Console.WriteLine(string.Format("{0}{1}",new string(' ',row- i),new string('*',col))); 11 } 12 } 13 14 15 /// <summary> 16 /// 正三角形 17 /// </summary> 18 /// <param name="row"></param> 19 static void Triangle(int row) 20 { 21 for (int i = 1; i < row; i++) 22 { 23 Console.WriteLine(string.Format("{0}{1}",new string(' ',row- i),new string('*',i*2-1))); 24 25 } 26 } 27 28 /// <summary> 29 /// 倒三角形 30 /// </summary> 31 /// <param name="row"></param> 32 static void ReverseTriangle(int row) 33 { 34 for (int i = 1; i < row; i++) 35 { 36 Console.WriteLine(new string(' ', i) + new string ('*', (row - i) 37 *2 - 1)); 38 } 39 } 40 41 42 43 /// <summary> 44 /// 梯形 45 /// </summary> 46 /// <param name="row"></param> 47 static void Trapezoid(int row) 48 { 49 for (int i = 2; i < row; i++) 50 { 51 Console.WriteLine( new string('*', i * 2 - 1)); 52 } 53 } 54 55 /// <summary> 56 /// 菱形 57 /// </summary> 58 /// <param name="row"></param> 59 static void Diamond(int row) 60 { 61 62 for (int i = 1; i <= row; i++) 63 { 64 Console.WriteLine(string.Format("{0}{1}",new string(' ',row- i),new string('*',i*2-1))); 65 } 66 row -= 1; 67 for (int i = 1; i <row; i++) 68 { 69 Console.WriteLine(string.Format("{0}{1}", new string(' ', 70 i+1), new string('*', ((row - i) * 2) - 1))); 71 } 72 73 } 74 75 /// <summary> 76 /// 空心三角形 77 /// </summary> 78 /// <param name="row"></param> 79 static void EmptyTriangle(int row) 80 { 81 for (int i = 1; i <= row; i++) 82 { 83 if (i == 1 || i == row) 84 { 85 Console.WriteLine("{0}{1}",new string(' ',row-i),new string 86 ('*',i*2-1)); 87 } 88 else 89 { 90 Console.WriteLine("{0}*{1}*", new string(' ', row - i), new 91 string(' ', (i * 2 - 1)-2)); 92 } 93 } 94 } 95 96 /// <summary> 97 /// 空心菱形 98 /// </summary> 99 /// <param name="row"></param> 100 static void EmptyDiamond(int row) 101 { 102 for (int i = 1; i <= row; i++) 103 { 104 if (i == 1 ) 105 { 106 Console.WriteLine(string.Format("{0}{1}", new string(' ', 107 row - i), new string('*', i * 2 - 1))); 108 } 109 else 110 { 111 Console.WriteLine(string.Format("{0}*{1}*",new string 112 (' ',row-i),new string(' ',(i*2-1)-2))); 113 } 114 } 115 row-=1; 116 for (int j = 1; j <= row; j++) 117 { 118 if (j == row) 119 { 120 Console.WriteLine(string.Format("{0}{1}", new string(' ', j), 121 new string('*', 1))); 122 } 123 else 124 { 125 126 Console.WriteLine(string.Format("{0}*{1}*",new string 127 (' ',j),new string(' ',((row-j)*2)-1))); 128 } 129 } 130 } 131


浙公网安备 33010602011771号