В каждом столбце матрицы обменять элементы главной и побочной диагоналей - C#
Формулировка задачи:
Создать файд с целой квадратной матрицей. Считать матрицу из файла. Вывести ее в консоль. В каждом столбце обменять элементы главной и побочной диагоналей. Преобразованную матрицу вывести. Записать матрицу в новый файл.
пс, сижу на экзамене очень поможете=)
Решение задачи: «В каждом столбце матрицы обменять элементы главной и побочной диагоналей»
textual
Листинг программы
using System; using System.Collections.Generic; using System.IO; class Program { static void Main(string[] args) { //Считываем матрицу из файла int[,] arr = LoadFromFile("matr.txt"); //Выводим на экран Print(arr); //Обмениваем элементы диагоналей arr = Trade(arr); //Выводим на экран Print(arr); //Записываем в новый файл SaveToFile(arr, "matr1.txt"); Console.ReadKey(); } static int[,] LoadFromFile(string fileName) { int[,] arr = new int[0, 0]; List<string[]> str_arr = new List<string[]>(); try { using (StreamReader sr = new StreamReader(fileName)) { string line; string[] tmp; int max = -1; ; while ((line = sr.ReadLine()) != null) { tmp = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); str_arr.Add(tmp); max = max < tmp.Length ? tmp.Length : max; } arr = new int[max, max]; int i = 0, j; foreach (var item in str_arr) { j = 0; foreach (var items in item) { int k; int.TryParse(items, out k); arr[i, j++] = k; } i++; } } } catch { Console.WriteLine("Прочитать файл не удалось!"); } return arr; } static void SaveToFile(int[,] arr, string fileName) { try { using (StreamWriter sw = new StreamWriter(fileName)) { string str = ""; for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) str += " " + arr[i, j]; sw.WriteLine(str); str = ""; } } } catch { Console.WriteLine("Сохранить файл не удалось!"); } } static public void Print(int[,] arr) { Console.Write("\n\n"); for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) Console.Write(" " + arr[i, j]); Console.Write("\n"); } } static public int[,] Trade(int[,] arr) { int k = arr.GetLength(0) - 1; for (int i = 0; i <= k; i++) { int t = arr[i, i]; arr[i, i] = arr[i, k - i]; arr[i, k - i] = t; } return arr; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д