Чтение матрицы и запись в файл - C#
Формулировка задачи:
Считать матрицу из файла, найти минимальный элемент каждого столбца и записать результат в выходной файл
Решение задачи: «Чтение матрицы и запись в файл»
textual
Листинг программы
class Program
{
static int[,] GetMatrixFromString(string s)
{
int[,] result;
var lines = s.Split('\n');
var rowNumber = lines.Length;
var columnNumber = lines.First().Split(' ').Length;
result = new int[rowNumber, columnNumber];
for (int i = 0; i < rowNumber; i++)
{
string[] columns = lines[i].Split(' ');
for (int j = 0; j < columnNumber; j++)
{
result[i,j] = int.Parse(columns[j]);
}
}
return result;
}
static int[] ColumnsMinimum(int [,] inputMatrix)
{
int[] result = new int [ inputMatrix.GetLength(1)];
for (int j = 0; j < inputMatrix.GetLength(1); j++) // Циккл по столбцам
{
int min = inputMatrix[0,j];
for (int i = 1; i < inputMatrix.GetLength(0); i++) // По строкам
{
if (inputMatrix[i,j] < min)
min = inputMatrix[i,j];
}
result[j] = min;
}
return result;
}
static void Main(string[] args)
{
StreamReader streamReader = new StreamReader("input.txt");
string matrixString = streamReader.ReadToEnd();
streamReader.Close();
int[,] matrix = GetMatrixFromString(matrixString);
int[] minimums = ColumnsMinimum(matrix);
string resultString = minimums.Aggregate("", (previous, current) => previous + " " + current);
StreamWriter streamWriter = new StreamWriter("output.txt");
streamWriter.WriteLine(resultString);
streamWriter.Close();
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}