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中,其他信息为索引超出
数组界限。雅
{
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中,其他信息为索引超出
数组界限。雅
解决方案 »
- devexpress richeditcontrol的字体设置
- 关于反射的一些问题,额,也许不是反射?
- C# DatagridView 之间的值的传递
- dategridview 多层表头制作
- 关于Image类的Save stream问题?
- 数据从另一个页面传来之后,如何正确应用到查询语句中,帮帮忙,着急中...一定给分,谢谢
- 关于Response.Redirect()
- C# 如何防止文件拷贝
- 请帮忙!等待!为什么用c#开发完成的程序,装在不同的机器上,有的可以运行浏览,有的运行浏览时看到的却是原代码?!
- 统计一下:有多少朋友用文本编辑器写程序的
- visual studio 2005 DataGridView CellClick的问题
- 在.Net中(c#),如果保证某个函数返回的对象不被修改?
for( i=0;i<n;i++)
{
for( j=0;j<n;j++)
{
mm[i,j]=0;//初始化数组
}
}
mm[i,j]=assign;//
到了这步mm[i,j]相当于mm[n,n]而由你定义的myD2.mm=new int[n,n];可以看出来你的数组大小是n行n列的,那怎么可能有mm[n,n]这个元素呢(数组的大小是从0开始的,所以最大下标的元素应该是mm[n-1,n-1])?