今天要和大家分享的小案例就是我们的矩阵置换
首先我们先写个代码,随机生成一个3*3的数字矩形:
arr[i, j] = random.Next(1, 100);
通过这个代码,我们获得一个每个数字都在1~100之间的3*3数字矩阵,
然后我们需要写一下矩阵置换的方法: ArrayCon(), 新建一个变量,来做他们的桥梁,完成转换
static void ArrayCon(ref int[,] a, int n)
{
int i, j, t;
for (i = 0; i < n; i++)
for (j = 0; j < i; j++)
{
t = a[i, j];
a[i, j] = a[j, i];
a[j, i] = t;
}
}
然后将矩阵排版成我们要的样式就可以了,做到了换行和空格,让出来的结果更好看。
if (zhong!=i)
{
textBox1.Text += "\r\n";
}
else
{
textBox1.Text += "\t";
}
textBox1.Text += Convert.ToString(arr[i, j]);
zhong = i;
这样我们的一个完整的矩形置换就可以使用了:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace juzheng
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
static void ArrayCon(ref int[,] a, int n)
{
int i, j, t;
for (i = 0; i < n; i++)
for (j = 0; j < i; j++)
{
t = a[i, j];
a[i, j] = a[j, i];
a[j, i] = t;
}
}
private void button1_Click(object sender, EventArgs e)
{
const int N = 3;
int i, j;
int[,] arr = new int[N, N];
Random random = new Random();
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
arr[i, j] = random.Next(1, 100);
textBox1.Text = "转置之前:\r\n";
}
}
int zhong = -1;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (zhong!=i)
{
textBox1.Text += "\r\n";
}
else
{
textBox1.Text += "\t";
}
textBox1.Text += Convert.ToString(arr[i, j]);
zhong = i;
}
}
ArrayCon(ref arr, N);
textBox1.Text += ("\r\n转置之后:\r\n");
int zhong1 = -1;
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (zhong1 != i)
{
textBox1.Text += "\r\n";
}
else
{
textBox1.Text += "\t";
}
textBox1.Text += Convert.ToString(arr[i, j]);
zhong1 = i;
}
}
}
}
}
程序的随机结果,这里给大家随机生成一个
转置之前:
73 76 5
67 16 97
55 16 14
转置之后:73 67 55
76 16 16
5 97 14