默认计划
2389人加入学习
(4人评价)
【唐老狮】Unity基础课程之C#基础
价格 免费
承诺服务
该课程属于 Unity3d实战就业路线课程套餐
请加入后再学习

        static void Main(string[] args)
        {
            #region 1
            int[,] holyShit = new int[100, 100];

            int num = 1;

            for (int i = 0; i < holyShit.GetLength(0); i++ )
            {
                for (int j = 0; j < holyShit.GetLength(1); j++, num++)
                {
                    holyShit[i, j] = num;
                }
            }
            #endregion

            Random randomize = new Random();
            #region 2
            int[,] DA_Tri = new int[4,4];
            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    DA_Tri[i, j] = randomize.Next(1, 101);
                }
            }
            for (int i = 0; i <= DA_Tri.GetLength(0) / 2 - 1; i++)
            {
                for (int j = 2; j < DA_Tri.GetLength(1) && j > DA_Tri.GetLength(1) / 2 - 1; j++)
                {
                    DA_Tri[i, j] = 0;
                }
            }

            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    Console.WriteLine((i + 1) + "行" + (j + 1) + "列" + DA_Tri[i, j]);
                }
            }
            #endregion

            #region 3

            float sum = 0;
            DA_Tri = new int[3, 3];
            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    DA_Tri[i, j] = randomize.Next(1, 11);
                }
            }
            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    if (i == j)
                    {
                        sum += DA_Tri[i, j];
                    }
                }
            }

            Console.WriteLine("和为" + sum);
            #endregion

            #region 4
            DA_Tri = new int[5, 5];

            int maxRow = 0;
            int minRow = 0;
            int maxColumn = 0;
            int minColumn = 0;

            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    DA_Tri[i, j] = randomize.Next(1, 501);
                }
            }

            int max = DA_Tri[0, 0];
            int min = DA_Tri[0, 0];

            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    if (max < DA_Tri[i, j])
                    {
                        max = DA_Tri[i, j];
                        maxRow = i;
                        maxColumn = j;
                    }
                    if (min > DA_Tri[i, j])
                    {
                        min = DA_Tri[i, j];
                        minRow = i;
                        minColumn = j;
                    }
                }
            }
            for (int i = 0; i < DA_Tri.GetLength(0); i++)
            {
                for (int j = 0; j < DA_Tri.GetLength(1); j++)
                {
                    Console.WriteLine((i + 1) + "行" + (j + 1) + "列" + DA_Tri[i, j]);
                }
            }
            Console.WriteLine("数组中的最大值在{0}行{1}列,为{2};最小值在{3}行{4}列,为{5}", (maxRow+1), (maxColumn+1), max, (minRow+1) ,(minColumn+1), min);
            #endregion

            #region 5
            int m = 1;
            int n = 1;

            Console.WriteLine("请输入数组行数");
            m= int.Parse(Console.ReadLine());
            Console.WriteLine("请输入数组列数");
            n = int.Parse(Console.ReadLine());

            int[,] DA_WTF = new int[m, n];
            int[,] DA_memory = new int[m ,n];
            //让记录数组全为0
            for (int i = 0; i < DA_memory.GetLength(0); i++)
            {
                for (int j = 0; j < DA_memory.GetLength(1); j++)
                {
                    DA_memory[i, j] = 0;
                }
            }
            //让主数组是0或者1
            for (int i = 0; i < DA_WTF.GetLength(0); i++)
            {
                for (int j = 0; j < DA_WTF.GetLength(1); j++)
                {
                    DA_WTF[i, j] = randomize.Next(2);
                    Console.Write(DA_WTF[i, j] + " ");
                }
                Console.WriteLine("");
            }
            int row = 0;
            int column = 0;
            for (int i = 0; i < DA_WTF.GetLength(0); i++)
            {
                for (int j = 0; j < DA_WTF.GetLength(1); j++)
                {
                    int check = DA_WTF[i, j];
                    //找到主数组的1
                    if (check == 1)
                    {
                        //记录等于1的行列
                        row = i;
                        column = j;

                        //扔进记录数组
                        for (int k = 0; k < DA_memory.GetLength(0); k++)
                        {
                            for (int l = 0; l < DA_memory.GetLength(1); l++)
                            {
                                //相等时TMD在记录数组里循环把这一行这一列全转成1,TMD
                                if(k == row || l == column)
                                {
                                    DA_memory[k, l] = 1;
                                }
                            }
                        }
                    }
                }
            }
            //得数还回去
            DA_WTF = DA_memory;
            for (int i = 0; i < DA_WTF.GetLength(0); i++)
            {
                for (int j = 0; j < DA_WTF.GetLength(1); j++)
                {
                    Console.Write(DA_WTF[i, j] + " ");
                }
                Console.WriteLine("");
            }
            #endregion

[展开全文]

声明二维数组:

int[,] arr;

int[,] arr2 = new int[3, 3];

 

获得二维数组行列数:

array.GetLength(0)和array.GetLength(1)分别获得二维数组行列数

 

 

[展开全文]

二维数组的声明方式

int[,] 自定义名称 ={{},{}};

int[,] 自定义名称 =new int[行数,列数];

int[,] 自定义名称 = new int{{},{}}

[展开全文]

二维数组:使用两个下标来索引来确定元素数组。

两个下标可以理解位行标和列标。

知识点:申明、遍历、增删查改。

 

[展开全文]

## 一、基本概念

二维数组 是使用两个下标(索引)来确定元素的数组

两个下标可以理解成 行标 和 列标

比如矩阵, 可以用int[2,3]表示

123

456

 

## 二、二维数组的申明

### 变量类型[,] 二维数组变量名;

int[,] arr; // 申明之后在后面进行初始化```

### 变量类型[,] 二维数组变量名 = new 变量类型[行, 列];

int[,] arr = new int[3, 3]

 

### 变量类型[,] 二维数组变量名 = new 变量类型[行, 列]{{0行内容1, 0行内容2}, {1行内容1, 1行内容2}};

int[,] arr = new int[3, 3]{

{1, 2, 3},

{4, 5, 6},

{7, 8, 9}

}

 

### 变量类型[,] 二维数组变量名 = new 变量类型[行, 列]{{0行内容1, 0行内容2}, {1行内容1, 1行内容2}};

int[,] arr = new int[3, 3]{

{1, 2, 3},

{4, 5, 6},

{7, 8, 9}

}

 

### 变量类型[,] 二维数组变量名 = new 变量类型[, ]{{0行内容1, 0行内容2}, {1行内容1, 1行内容2}};

int[,] arr = new int[, ]{

{1, 2, 3},

{4, 5, 6},

{7, 8, 9}

}

 

## 三、二维数组的使用

### 1 二维数组的长度

int[,] arr = new int[, ]{

{1, 2, 3},

{4, 5, 6}

}

arr.GetLength(0) // 2

arr.GetLength(1) // 3

### 2 获取二维数组中的元素

arr[0,1]

### 3 修改二维数组中的元素

arr[0,1] = 99;

### 4 遍历二维数组

```

int[,] arr = new int[,] { { 1, 2, 3 },
                                      { 4, 5, 6 } };

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.WriteLine(arr[i, j]);
                }
            }

```

### 5 增加数组的元素

```

int[,] arr = new int[,] { { 1, 2, 3 },
                                      { 4, 5, 6 } };

            int[,] arr2 = new int[3, 3];

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr2[i, j] = arr[i, j];
                }
            }

            arr = arr2;

```

### 6 删除数组的元素

```

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

            int[,] arr2 = new int[2, 3];

            for (int i = 0; i < arr2.GetLength(0); i++)
            {
                for (int j = 0; j < arr2.GetLength(1); j++)
                {
                    arr2[i, j] = arr[i, j];
                }
            }

            arr = arr2;
            Console.Write(arr.GetLength(0));
            Console.Write(arr.GetLength(1));

```

 

### 7 查找数组中的元素

```

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

            int a = 9;

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    if (a == arr[i,j])
                    {
                        break;
                    }
                }
            }

```

 

## 练习题

 

### 1

将1到10000赋值给一个二维数组(100行100列)

```

int[,] arr = new int[100,100];

            int num = 10000;

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = num--;
                    Console.Write("num: {0} ;", arr[i, j]);
                }
            }

```

### 2

将二维数组(4行4列)的右上半部分置零(元素随机1~100)

```

int[,] arr = new int[4,4];
            Random r = new Random();

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = i >= 2 && j >= 2 ? 0 : r.Next(1, 100);
                }

            }

```

### 3

求二维数组(3行3列)的对角线元素的和(元素随机1~10)

```

int[,] arr = new int[3,3];
            Random r = new Random();
            int sum = 0;

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = r.Next(1, 100);
                    // 下标相加 能被2整除
                    if ( (i + j) % 2 == 0)
                    {
                        sum += arr[i, j];
                    }
                    Console.WriteLine("{0} \t", arr[i, j]);
                }
            }
            Console.WriteLine(sum);

```

### 4

求二维数组(5行5列)中最大元素值及其行列号(元素随机1~500)

```

int[,] arr = new int[5,5];
            Random r = new Random();
            int max = 0;
            int col = 0;

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = r.Next(1, 500);
                    if ( arr[i, j] >= max)
                    {
                        max = arr[i, j];
                        col = i;
                    }
                    
                }
            }
            Console.WriteLine("col {0}, max {1}", col, max);

```

### 5

给一个M*N的二维数组,数组元素的值为0或者1,要求转换数组,将含有1的行和列全部置1

```

int[,] arr = new int[5, 5] {

                { 0, 0, 0, 0, 0},
                { 0, 0, 0, 0, 0},
                { 0, 1, 0, 0, 0},
                { 0, 0, 1, 1, 0},
                { 0, 0, 0, 0, 0}
            };

            Random r = new Random();
            bool[] col = new bool[5];
            bool[] raw = new bool[5];

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    //arr[i, j] = r.Next(0, 2);
                    if (arr[i ,j] == 1)
                    {
                        col[i] = true;
                        raw[j] = true;
                    }
                    Console.Write("num: {0} ", arr[i, j]);

                }
                Console.Write("\n");
            }

            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    if ( col[i] || raw[j])
                    {
                        arr[i, j] = 1;
                    }
                    Console.Write("num: {0} ", arr[i, j]);

                }
                Console.Write("\n");
            }

```

 

[展开全文]

二维数组是使用两个下标来确定元素的数组

两个下标可以理解成行标和列标

 

二维数组的申明

变量类型[,] 数组变量名;     申明的时候,行和列可以不写

变量类型[,] 二维数组变量名 = new 变量类型[行,列];

变量类型[,] 二维数组变量名 = new 变量类型[行,列]{{    },{    },{    }...};

变量类型[,] 二维数组变量名 = {{    },{    },{    }...};

 

二维数组的长度

要获取行和列分别是多长

变量名.GetLength(0); 行长度

变量名.GetLength(1); 列长度

 

获取二维数组中的元素

第一个元素的索引是0

 

修改二维数组中的元素

直接赋值修改

 

遍历二维数组

嵌套循环遍历行和列

 

 

增加数组的元素

数组声明初始化过后,就不能在原有的基础上进行添加或者删除了

 

 

[展开全文]

授课教师

游戏开发前端主程

课程特色

视频(42)
下载资料(37)

学员动态

从零开始学unity 加入学习
DCMax 加入学习
鱼排fish 加入学习
星星屑屑诶嘿嘿 加入学习
haixiao_stack 加入学习