В каждом столбце матрицы обменять элементы главной и побочной диагоналей - 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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы