用C#语言打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),要求最外层为"X",第二层为"Y",从第三层起每层依次打印数字0,1,2,3,...例子:当N =5,打印出下面的图形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X

解决方案 »

  1.   

    打印矩阵的维数依次为N,N-2,...N-2*k,计算出打印的层数和打印的数字,然后就很好实现了
      

  2.   

    n*n矩阵
    http://topic.csdn.net/u/20071226/09/0bb02bd8-6bae-4651-b2e1-9c21d2ee69b9.html
      

  3.   


    <%@Page Language="c#"%>
    <script runat=server>
    void Page_Load()
    {
    int N=9; // 最外层 for(int x=1;x<=N;x++)
    {
    for(int y=1;y<=N;y++)
    Response.Write( u(x,y,N).ToString() + " " );
    Response.Write("<br>");
    }
    }
    int u(int x,int y,int n)
    {
    int s = (n+1)-x;
    s = ( s>y ) ? s : y; int w = (n+1)-y;
    w = ( w>x ) ? w : x; return( s>w ) ? s : w;
    }
    </script>
      

  4.   

    string[,] a = null;
                while (true)
                {
                  int n=Convert.ToInt32(  Console.ReadLine());
                    a=new string[n,n];
                    for (int i = 0; i < n; i++)
                    {
                        for (int j = i; j < n - i; j++)
                        {
                            if (i == 0)
                                a[i, j] = a[j, i] = a[j, n - i-1] = a[n - i-1, j] = "X";
                            else if (i == 1)
                                a[i, j] = a[j, i] = a[j, n - i-1] = a[n - i-1, j] = "Y";
                            else
                                a[i, j] = a[j, i] = a[j, n - i-1] = a[n - i-1, j] = (i-2).ToString();
                        }                }
                    for (int i = 0; i < n; i++)
                    {
                        for (int j = 0; j <n; j++)
                        {
                            Console.Write(a[i, j]);
                        }
                        Console.WriteLine();
                    }
                }