打印菱形...我按着循环自己想了半天.明显没有错误.
上半部分对了。但下半部分却不对.打印出来不对.请帮忙看看.谢static void Main(string[] args)
{
int x,y,i,k;
x=System.Convert.ToInt32(System.Console.ReadLine());
for (y=0;y<(x+1)/2;y++)
{
for(i=0;i<=x/2-y;i++)
{
System.Console.Write(" ");
}
for(k=0;k<=2*y;k++)
{
System.Console.Write("*");
}
System.Console.Write("\n");
}
for(y=x/2-1;y>=0;y--)                        
{
for(i=x/2-y;i>=0;i--) 
{
System.Console.Write(" ");
}    
for(k=2*y;k>=0;k--)  
{
System.Console.WriteLine("*");
}   
System.Console.Write("\n");   
}    System.Console.ReadLine();
}

解决方案 »

  1.   

    private static void PrintDiamond(int length)
    {
    int x,y,a,b;
    for(x = -length; x <= length; x ++)
    {
    for(y = length; y >= -length; y --)
    {
    a = x>0?x:-x;
    b = y>0?y:-y;
    if(a+b <= length)
    System.Console.Write("*");
    else
    System.Console.Write(" ");
    }
    System.Console.Write("\n");
    }
    }
      

  2.   

    System.Console.WriteLine("       *     ");
    System.Console.WriteLine("      ***    ");
    System.Console.WriteLine("     *****   ");
    System.Console.WriteLine("    *******  ");
    System.Console.WriteLine("     *****   ");
    System.Console.WriteLine("      ***    ");
    System.Console.WriteLine("       *     ");返汇编就知道我的代码运行效率高了 :)
      

  3.   

    for(k=2*y;k>=0;k--)  
    {
    System.Console.WriteLine("*");
    } 把这里的WriteLine改成 System.Console.Write("*");
      

  4.   

    上部分都对了,下部分的表达式正好和上部分相反不就完事了。你跟踪一下程序,一行一行的根,看那一行有问题呗!my dear