public class D2
{
public int [,] mm; public static void Main()
{

while(true)
{
D2 myD2=new D2();
int n;
Console.WriteLine("please input martix:");
n=Convert.ToInt32(Console.ReadLine());
if(n==0)
{
 Console.WriteLine("enter");
break;
}
if(n%2 ==0)
{
 Console.WriteLine("请输入奇数:");
 continue;
}
myD2.mm=new int[n,n];
myD2.AssignValue(n);
myD2.shuchu(n);
Console.WriteLine("\n");    }
Console.ReadLine();
  } public void AssignValue(int n)
{
int i,j=0;
    int assign=1;//用于填入矩阵中的值
int p=n-1;//数字放入的位置
int row=0;
int col=p/2;//中间点的坐标位置
for( i=0;i<n;i++)
{
for( j=0;j<n;j++)
{
 mm[i,j]=0;//初始化数组
}
}
mm[i,j]=assign;//
while(assign<n*n)
{
   assign++;
col--;
row--;
if(col<0 & row<0)
{
    col+=2;
row+=1;
}
else
{
if(col<0)
{
 col=p;
}
if(row<0)
{
 row=p;
}
}
if(mm[i,j]!=0)
{
    col+=1;
row+=2;
}
mm[i,j]=assign;
}
}
public void shuchu(int n)
{
int i,j;
for( i=0;i<n;i++)
    for( j=0;j<n;j++)
Console.WriteLine("mm[{0},{1}]:{2}",i,j,mm[i,j]);     }
}
}
未处理的"system.index out of range exception"类型的异常出现在d2.exe中,其他信息为索引超出
数组界限。雅