Using system;
class Myclass
{
public static void Transpose(int[M,N]a,int[N,M]b)//a是原来的数组,b是转置后的数组
{
for(int i=0;i<N;i++)
for(int j=0;j<M;j++)
b[i,j]=a[j,i];
}
}
class Mynewclass
{
public static void Main()
{
const int M=3; ////数组的大小可以自己定义
const int N=4;
int k=0;
int [,]a=new int[M,N]; //数组的大小可以自己定义
int [,]b=new int[N,M];
for(int i=0;i<M;i++)
for(int j=0;j<N;j++)
{
Console.write("Please input a[{0},{1}]:",i,j);
a[i,j]=Int32.Parse(Console.ReadLine());
}
Myclass my=new Myclass();
my.Transpose(a,b);
Console.WriteLine("The original is:); //输出原来的矩阵
for(int i=0;i<M;i++)
for(k=0,int j=0;j<N;j++)
{
Console.Write("{0}\t",a[i,j]);
k++;
if(k==N) Console.WriteLine();
}
Console.WriteLine("Then it change to:); //输出转置后的矩阵
for(int i=0;i<N;i++)
for(k=0,int j=0;j<M;j++)
{
Console.Write("{0}\t",b[i,j]);
k++;
if(k==M) Console.WriteLine();
}
Console.ReadKey();
}
}
注意,数组在方法中做参数的话,其在方法中的变动会改变其本身,即是引用。
[
本帖最后由 qq1023569223 于 2010-12-22 15:55 编辑 ]