c# 输出* 图形问题
我想要出入一个图形*
***
*****
*******
*****
***
*
我写的代码是:
for (int i = 1; i < 5; i++)
{ //左上半部分
for (int j = 0; j < (4 - i);j++ )
{
Console.Write(" "); //空格部分
}
for (int j = 1; j <= i; j++)
{
Console.Write("*");
}
//右上半部分
for (int j = (i-1); j >0; j--)
{
Console.Write("*");
}
Console.WriteLine(" ");
}
//下半部分
for (int m = 1; m < 4; m++)
{
//左下部分
for (int n = 1; n <= m; n++)
{
Console.Write(" ");//空格部分
}
for(int n=(4-m);n >0;n--)
{
Console .Write ("*");
}
//右下部分
for (int n = (3 - m); n > 0; n--)
{
Console.Write("*");
}
Console.WriteLine(" ");
}
Console.Read();
}
}
有没有其他的方法指教一下 我是分成四个部分去做的 --------------------编程问答-------------------- 可以分为三部分
上,中,下
--------------------编程问答-------------------- 用递归尝试一下 --------------------编程问答-------------------- 菱形? --------------------编程问答--------------------
--------------------编程问答-------------------- //这样还简单一点
#region
/// <summary>
/// 下三角形;
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
private static void Triangle(int param)
{
int my = 0, param1 = param;
do
{
--param1; ++my;
for (int i = 0; my > i; ++i)
{
Console.Write(" ");
}
for (int x = 2 * (param1 - 1) + 1; x > 0; --x)
{
Console.Write("*");
}
Console.WriteLine("");
} while (my < param - 1);
}
#endregion
static void Main(string[] args)
{
Console.Write("请输入上三角形的高度");
int mylength = Convert.ToInt32(Console.ReadLine());
int myenxt = 0, myenxt1 = mylength;
do //上三角;
{
--mylength; ++myenxt;
for (int i = mylength; i > 0; --i)//填充 空格;
{
Console.Write(" ");
}
for (int j = 0; j < (myenxt - 1) * 2 + 1; ++j)//填充 星号;
{
Console.Write("*");
}
Console.WriteLine("");
}
while (myenxt < myenxt1);
Triangle(myenxt1);//下三角型;
bool enxt = true;
while (enxt)
{
ConsoleKeyInfo mychar = Console.ReadKey();
if (mychar.KeyChar >= 0)
{
enxt = false;
}
}
}
public static void star1(int n) {
string s = " ";
for (int i = 1; i <= n; i++)
{
Console.Write(" ");
for(int j=1;j<=2*i-1;j++){
Console.Write("*");}
Console.WriteLine();
} //上部三角
for(int i=1;i<= 2*n+1;i++){
Console.Write("*");
}
Console.WriteLine();//中部
for(int i=n; i>=1;i--){
Console.Write(" ");
for (int j = 1; j <= 2*i-1; j++) {
Console.Write("*");
}
Console.WriteLine();
}//下部倒三角
}
static void Main(string[] args)
{
int n = 3;
star1(n);
Console.ReadKey();
} --------------------编程问答--------------------
private void Print(int maxLength)
{
int pad = maxLength / 2;
string star = "*";
while (!string.IsNullOrEmpty(star))
{
int absPad = Math.Abs(pad);
Console.WriteLine(star.PadLeft(maxLength-absPad, ' ').PadRight(maxLength, ' '));
star = --pad >= 0 ? string.Format("*{0}*", star) :
star.Length > 1 ? star.Substring(1, star.Length - 2) : string.Empty;
}
}
补充:.NET技术 , C#