Циклический сдвиг строки матрицы в зависимости от чётности минимального элемента - C#
Формулировка задачи:
12. Дана матрица А[m,n]. Если минимальный элемент строки матрицы четный, выполнить циклический сдвиг этой строки вправо, чтобы этот элемент оказался в последнем столбце. Иначе выполнить циклический сдвиг строки влево, чтобы этот элемент оказался в первом столбце.
если можно с комментариями))
Решение задачи: «Циклический сдвиг строки матрицы в зависимости от чётности минимального элемента»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication8
- {
- class Program
- {
- static void Main(string[] args)
- {
- const int m = 10, n = 5 , x = 20;
- Random rnd = new Random();
- int[,] A = new int[m, n];
- int i, j, min, jMin, temp;
- Console.WriteLine("Рандомная матрица");
- for (i = 0; i < m; i++)//Выводим матрицу на консоль и одновременно заполняем ее
- {
- for (j = 0; j < n; j++)
- {
- Console.Write("{0,4}", A[i, j] = rnd.Next(x));
- }
- Console.WriteLine();
- }
- for (i = 0; i < m; i++) //пербираем все строки
- {
- min = int.MaxValue;
- jMin = 0;
- for (j = 0; j < n; j++) //ищем миним.эл. строки и его индекс
- {
- if (A[i, j] < min)
- {
- min = A[i, j];
- jMin = j;
- }
- }
- //реализация циклич.сдвига (rotate)
- //смещаем на одну позицию влево каждый элемент ровно стоко раз - какой индекс минимального
- //в итоге любой минимальный оказывается крайним слева.
- if (min % 2 == 0) //если же min четный то количество сдвигов влево увеличивает на 1
- jMin++; //в итоге он оказывается крайним справа
- while (jMin>0)
- {
- temp = A[i, 0]; //значение 1-го элемента строки храним во врем.переменной
- for (j = 0; j < n-1; j++)
- {
- A[i, j] = A[i, j + 1]; //собственно здесь и происходит смешение значений
- } //каждого элемента строки строки влево ровно jMin или jMin+1 раз
- jMin--;
- A[i, n-1] = temp;
- }
- }
- Console.WriteLine("Результат:");
- for (i = 0; i < m; i++)//Выводим результат
- {
- for (j = 0; j < n; j++)
- {
- Console.Write("{0,4}", A[i, j]);
- }
- Console.WriteLine();
- }
- Console.ReadLine();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д