- Written by
Ajay Pathak
- Posted at 7:31 pm
Today We will write a program for converting matrix’s row and columns to zero if any one element is zero.
Example
Input |
Output |
2 2 2 2
2 0 2 3
2 2 2 2
|
2 0 2 2
0 0 0 0
2 0 2 2
|
Code
public static void RowColumnZero(int[,] matrix)
{
Console.WriteLine("------------------------------------------------------");
Console.WriteLine("Before");
Print2DMatrix(matrix);
int rowConter;
int columnCounter;
rowConter = columnCounter = 0;
int[] rowArray = new int[matrix.GetLength(0)];
int[] columnArray = new int[matrix.GetLength(1)];
for (rowConter = 0; rowConter < rowArray.Length; rowConter++)
{
for (columnCounter = 0; columnCounter < columnArray.Length;
columnCounter++)
{
if (matrix[rowConter, columnCounter] == 0)
{
rowArray[rowConter] = 1;
columnArray[columnCounter] = 1;
}
}
}
for (rowConter = 0; rowConter < rowArray.Length; rowConter++)
{
for (columnCounter = 0; columnCounter < columnArray.Length;
columnCounter++)
{
if (rowArray[rowConter] == 1 || columnArray[columnCounter] == 1)
{
matrix[rowConter, columnCounter] = 0;
}
}
}
//Print output
Console.WriteLine("After");
Print2DMatrix(matrix);
Console.WriteLine("------------------------------------------------------");
}
Program For Creating the Matrix
public static int[,] CreateTestMatrix(int row, int column)
{
int[,] matrix = new int[row, column];
int i, j;
Random rnd = new Random();
for (i = 0; i < row; i++)
{
//create a test matrix
for (j = 0; j < column; j++)
{
matrix[i, j] = rnd.Next(0, row * column);
}
}
return matrix;
}
Program for Printing the Matrix
private static void Print2DMatrix(int[,] matrix)
{
for (int rowConter = 0; rowConter < matrix.GetLength(0); rowConter++)
{
{
for (int columnCounter = 0; columnCounter < matrix.GetLength(1);
columnCounter++)
{
Console.Write(matrix[rowConter, columnCounter] + " ");
}
Console.WriteLine(Environment.NewLine);
}
}
}
Test
Input |
Output |
6 0 9 11
7 3 10 5
10 5 11 3
|
0 0 0 0
7 0 10 5
10 0 11 3
|
7 8 5 3
8 8 11 19
15 19 0 19
7 7 9 11
14 8 16 6
|
7 8 0 3
8 8 0 19
0 0 0 0
7 7 0 11
14 8 0 6
|
6 0 3
5 5 3
6 8 6
|
0 0 0
5 0 3
6 0 6
|
5 11 6 8
9 5 7 5
13 7 1 7
0 12 9 12
|
0 11 6 8
0 5 7 5
0 7 1 7
0 0 0 0
|
2 6 3
4 5 3
4 3 7
|
2 6 3
4 5 3
4 3 7
|
1 1
3 1
|
1 1
3 1
|