C # elimina el elemento especificado en la matriz bidimensional y cambia la longitud de la matriz

@ 好好 zhang 先生
Con respecto al manejo de matrices bidimensionales C #, busqué información y descubrí que no coincidía con mi propio proyecto.
Encontré un problema durante el proyecto de clasificación de LED. Es necesario eliminar todos los datos (0,0) en la matriz bidimensional previamente escaneados por el chip y cambiar la lectura de la matriz. Hablando popularmente, como la matriz Arrya [10,2] , 10 filas y 2 columnas de datos, suponiendo que haya 5 (0,0) datos en la matriz; debe eliminar los 5 datos y ordenar los datos originales en el orden original y generar una matriz de longitud Arryc [5,2].
Lo siguiente resume mis ideas de la siguiente manera:
Primero, la distribución de (0,0) en la matriz original Arrya [10,2] de longitud conocida es aleatoria. Supongo que el índice impar es (0,0) y el índice par no ( 0,0)
Luego determine los datos distintos de cero en la matriz Arrya por Arryb [10,2] número, y acepte, la posición restante está temporalmente vacante, y calcule el número de datos distintos de cero
j se redefine por el valor j calculado Arryc [j, 2] es una matriz de longitud j y los datos distintos de cero en la matriz Arryb se transfieren a Arryc [j, 2], lo que logra el propósito

La matriz original Arrya [10,2]
Sr. Zhang
matriz intermedia Arryb [10,2]
es responsable de recibir los datos distintos de cero en la matriz original Arrya [10,2]. Suponiendo que se reciben 5, las posiciones restantes siguen siendo los valores en la inicialización. son (0,0)
Inserte la descripción de la imagen aquí
de la matriz final de Arryc [j, 2], se calcula por el paso anterior, j = 5, la longitud definida de 5 Arryc
Inserte la descripción de la imagen aquí
por lo tanto, la función deseada se ha completado
se muestra a continuación 源代码片段.

static void Main(string[] args)
        {
            //定义一个长度为10的数组Arrya, 偶数索引为0,奇数索引为非0
            int ArryLength = 10;//数组长度
            int[,] Arrya = new int[ArryLength, 2];
            Console.WriteLine("*********  Arrya数组 ****************");
            for (int i = 0; i < ArryLength; i++)
            {
                if(i%2==0)
                {
                    Arrya[i, 0] = i ;
                    Arrya[i, 1] = i+1;
                }
                else
                {
                    Arrya[i, 0] = 0;
                    Arrya[i, 1] = 0;
                }
                Console.Write("第{0}行:  ", i);
                Console.Write(Arrya[i,0] + ",");
                Console.Write(Arrya[i,1]);
                Console.WriteLine("\n");//换行输出Arryb
            }

            //定义一个数组Arryb,将Arrya中不为0的数据按顺序接收并计算为(0,0)的个数
            int j = 0 ;
            int[,] Arryb = new int[ArryLength, 2];
            Console.WriteLine("*********  Arryb数组 ****************");
            for (int i = 0; i < ArryLength; i++)
            {             
                if (Arrya[i,0] != 0 || Arrya[i,1]!= 0)
                {
                    j = j + 1;
                    Arryb[j - 1, 0] = Arrya[i, 0];
                    Arryb[j - 1, 1] = Arrya[i, 1];
                }             
            }
            for (int i = 0; i < ArryLength; i++)
            {
                Console.Write("第{0}行:   ", i);
                Console.Write(Arryb[i, 0] + ",");
                Console.Write(Arryb[i, 1]);
                Console.WriteLine("\n");
            }

            Console.WriteLine("Arrya数组的(0,0)位置是{0}: ", j);
            //通过以上的计算Arrya中不为0 的个数j个,定义长度为j的数组
            int[,] Arryc = new int[j, 2];
            Console.WriteLine("*********  Arryc数组 ****************");
            for (int i = 0; i < j; i++)
            {
                Arryc[i, 0] = Arryb[i, 0];
                Arryc[i, 1] = Arryb[i, 1];
                Console.Write("第{0}行:   " , i);
                Console.Write(Arryc[i, 0] + ",");
                Console.Write(Arryc[i, 1]);
                Console.WriteLine("\n");//换行
            }
            Console.WriteLine("Arryc数组的长度是{0}: ", j);
            Console.ReadKey();
        }
    }
18 artículos originales publicados · Me gusta0 · Visitas 234

Supongo que te gusta

Origin blog.csdn.net/qq_39217004/article/details/105218345
Recomendado
Clasificación