简介。
很多时候,在处理任何信息时,您都必须处理表格数据。现代程序经常使用此类数据。最简单的例子是在棋盘上编程游戏:井字、国际象棋、西洋跳棋等。
在数学中,这种结构被称为矩阵。
Matrix 是由相同类型的元素(数字、字符串等)组成的矩形表格。< /跨度>
C#中的此类数据可以作为二维数组进行存储和处理——“数组的数组” .
要处理表格中的数据,需要记住每个单元格(cell)的状态。每个单元格都有两个数字:行号和列号。
在矩阵中,每个元素都有两个索引:首先指示行号,然后指示列号。行数和列数从零开始。
例如元素A[1, 2] 就是位于第二行第三列的元素。
就像常规数组一样,为了使用矩阵,您需要学习它们创建,输入、处理和显示。
创建一个矩阵。跨度 >
可以创建一个 内存矩阵一个给定的大小填充了一些初始值。
<代码>int[,] array = new int[4, 2]; // 4 行,2 列
<分区>
创建矩阵后,您可以用任意值填充它。由于每个元素都有两个索引,所以需要使用嵌套循环
<前>
for (int i=1; i <= N, i++) { / /N - 行数
for (int j=1; j <= N, j++) { // M 是列数
A[i, j] = ...
}
代码>
显示矩阵。
通常使用两个嵌套循环来处理和显示列表。第一个循环在行号上,第二个循环在行内的元素上。 要将矩阵逐行输出到屏幕上,一行内用空格分隔数字, 需要编写如下片段:
<前>
for (int i=1; i <= N, i++) {
对于 (int j=1; j <= N, j++) {
Console.Write(A[i, j] + “”);
}
控制台.WriteLine(); // 移动到一个新行
}
你可以这样做,但使用列表循环而不是索引 ( foreach ).尝试自己编写一个实现此功能的子例程。
|
用键盘输入的值填充矩阵。
让程序接收一个二维数组作为输入,形式为 < em>n em> 字符串,每个包含 m 由空格分隔的数字。如何计算它们?例如,像这样:
<前>
int[,] array = new int[n,m]; // 创建一个数组来填充
for (int i = 0; i < n; i++)
{
string A = Console.ReadLine(); // 读取行
int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // 将这个字符串转换为一维数组 curr
for (int j = 0; j < m; j++)
{
数组[i, j] = curr[j]; // 用curr数组中的值填充我们需要的数组的字符串
}
|
矩阵的每个元素都有两个索引,所以需要使用嵌套循环来遍历所有元素。
通常一个矩阵是逐行迭代的:外层循环遍历行索引,而内层循环遍历列索引。
但如果有必要,您可以遍历矩阵并按列进行迭代,然后循环反转。
|