用C#编写一个,任意一个3行3列的数字,按照斜对角线交换位置的程序。。。。

例如原来矩阵是这样的
1 2 3
4 5 6
7 8 9
最后结果是
1 4 7
2 5 8
3 6 9

int[,] arrayA = new int[3, 3]{
{1,2,3},
{4,5,6},
{7,8,9}
};

int[,] arrayB = new int[3, 3]{
{1,2,3},
{4,5,6},
{7,8,9}
};

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(arrayA[i,j]+" ");
}
Console.WriteLine();
}

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
arrayA[i, j] = arrayB[j, i];
//就是把横纵的下标换个位置
}
}

Console.WriteLine();

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(arrayA[i, j] + " ");
}
Console.WriteLine();
}

Console.ReadKey();
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-22
int temp=0;
for(int i=0;i<m;i++)
for(int j=0;j<m;j++)
{ if(i!=j)
{ temp=a[j][i];
a[j][i]=a[i][j];
a[i][j]=temp;
}
}追问

谢谢

第2个回答  2012-05-22
方法有很多,我用二维数组弄了个,不知道你用不用得上~~
int[,] nums = new int[3, 3] {
{1,2,3},
{4,5,6},
{7,8,9}
};
for (int i = 0; i < nums.Length/nums.GetLength(0); i++)
{
for (int j = 0; j < nums.GetLength(0); j++)
{
Console.Write(nums[i,j]);
}
Console.WriteLine();
}
Console.WriteLine("*********************");
for (int i = 0; i < nums.Length / nums.GetLength(0); i++)
{
for (int j = 0; j < nums.GetLength(0); j++)
{
Console.Write(nums[j, i]);
}
Console.WriteLine();
}追问

谢谢你,挺好的。

追答

不用客气~

第3个回答  2012-05-22
用两个数组,注意下标,如原数组中数字2的数组表示为a[0,1];转换后数字2的数组表示为b[1,0];
用两重循环遍历解决,思路就是这样!追问

谢谢啊。

用C#编写一个,任意一个3行3列的数字,按照斜对角线交换位置的程序...
int[,] arrayA = new int[3, 3]{ {1,2,3},{4,5,6},{7,8,9} };int[,] arrayB = new int[3, 3]{ {1,2,3},{4,5,6},{7,8,9} };for (int i = 0; i < 3; i++){ for (int j = 0; j < 3; j++){ Console.Write(arrayA[i,j]+" ");} Console.Wri...

c语言 按行输入3行3列矩阵A的各元素,计算主对角线之和并输出
include<stdio.h> int main(){ int a[3][3],sum=0;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j||(i+j==2))sum=sum+a[i][j];printf("sum=%d\\n",sum);return 0;} 运行效果:...

如何用C#编写一个计算3x3矩阵对角线元素和?
1、首先在电脑中,打开Dev-c++软件,点击“新建源代码”,如下图所示。2、具体程序如下,如下图所示。3、此次的程序最终目的是求出3x3的整型矩阵对角线元素之和,所以要向计算机输入3x3矩阵中的所有元素。4、其次要对输入的矩阵的元素进行放置于相应的位置,以便于之后的计算其对角元素之和。5、最后需...

C#求一个33矩阵对角线元素之和
main(){int a[3][3],i,j,sum=0;printf("please input a 3*3 integer array:\\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);printf("the 3*3 integer array is:\\n",);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%d ",a[i][j]);prin...

C#代码题 求一个3阶数字矩阵对角线的和,数字矩阵如下: 1 2 3 4 5...
假设矩阵是 int[,] a=new int[3,3];一个对角线 return a[0,0] + a[1,1] + a[2,2];另一个对角线 return a[0,2] + a[1,1] + a[2,0];

用C#编程求N行N列式的对角线上元素之和?
对角线即 a11,a22,a33...ann an1,a(n-1)2,a(n-2)3...a1n 所有这些数据加起来的和.如果n为奇数,再减掉一个交叉点 a(n+1)\/2(n+1)\/2.由于 c 数组下标是从0开始.数组 a[n-1][n-1]保存 N行N列式 int total=0;for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ i...

C# 编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上...
int a[4,4] ={{4,5,6,8},{1,4,6,7},{65\/23\/47\/11},{1,5,9,8}} int sum=0 for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(i==j || j+j==3){ sum+=a[i,j];} } }

C#穷举一道题
平面魔方的一般定义:将自然数 1 到 N^2, 排列 N 行 N 列的方阵,使每行、每列及两条主对角线上的 N 个数的和都等于N (N^2+1)\/2,这样的方阵称为 N 阶幻方。N为4的倍数时 采用对称元素交换法。首先把数1到n×n按从上至下,从左到右顺序填入矩阵 然后将方阵的所有4×4子方阵中...

用C#编写: 输入一个5行5列的二维数组,编程实现: (1)求出其中的最大值...
i++)sum += array[i, i];Console.WriteLine("最大数为:{0},位置是:第{1}行,第{2}列", max, max_row, max_col);Console.WriteLine("最小数为:{0},位置是:第{1}行,第{2}列", min, min_row, min_col);Console.WriteLine("对角线上的元素之和为:{0}", sum);} } ...

设有一个5*5矩阵,计算两条对角线上元素之和 用C# 语言
int[,] arr = new int[5, 5];\/\/用Random随机产生5x5的矩阵 Random rand = new Random();for (int i = 0; i < 5; i++){ for (int j = 0; j < 5; j++){ arr[i, j] = rand.Next(1, 100); \/\/产生1到100之前的int } } \/\/对角线相加 int leftNum = 0, rightNum ...

相似回答
大家正在搜