Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.46 KB | None | 0 0
  1. {
  2.             //номера листбоксов не забудь изменить и checkbox'а тож
  3.             Random rnd = new Random();
  4.             listBox1.Items.Clear();
  5.             listBox2.Items.Clear();
  6.             int i, j;
  7.             int n = Convert.ToInt16(Microsoft.VisualBasic.Interaction.InputBox("Введите размер массива", "Размер", "5"));
  8.             if (n % 2 == 0)// если число четное
  9.             {// то делается это действие
  10.                 int m = Convert.ToInt16(Microsoft.VisualBasic.Interaction.InputBox("Введите кол-во столбцов", "Размер", "5"));
  11.                 int[,] mas1 = new int[n, m];
  12.                 int[,] mas2 = new int[n, m];
  13.                 for (i = 0; i <= n - 1; i++)
  14.                 {
  15.                     string str = "";
  16.                     for (j = 0; j <= m - 1; j++)
  17.                     {
  18.                         if (checkBox1.Checked == true) // если стоит флажок
  19.                         {
  20.                             mas1[i, j] = rnd.Next(0, 10);//то заполнить рандомом
  21.                         }else
  22.                         {// иначе заполнить вручную
  23.                             mas2[i, j] = Convert.ToInt16(Microsoft.VisualBasic.Interaction.InputBox("Введите элемент массива " + Convert.ToString(i) + " " + Convert.ToString(j), "Ввод элементов массива"));
  24.                         }
  25.                         str = str + mas1[i, j] + "  ";
  26.                     }
  27.                     listBox1.Items.Add(str);
  28.                 }
  29.                 // тут крч ниже начинается сама перестановка
  30.                 int x = n - 1; // это нужно, чтоб узнать номер последней строки в массиве т.к. у тебя массив будет идти до середины массива и за одну итерацию (шаг массива) будет делать сразу 2 действия
  31.                 for (i = 0; i <= (n / 2) - 1; i++)
  32.                 {
  33.                     for (j = 0; j <= m - 1; j++)
  34.                     {
  35.                         mas2[i, j] = mas1[x, j]; // первое действие верхнюю строку присваивает нижней
  36.                         mas2[x, j] = mas1[i, j]; // второе действие нижнюю строку присваивает верхней
  37.                     }
  38.                     x = x - 1; // обе строки переставились местами и теперь поднимаемся на одну строку вверх, а цикл сам уже опустится на одну вниз
  39.                 }
  40.                 for (i = 0; i <= n - 1; i++) // вывод массива в листбокс
  41.                 {
  42.                     string str = "";
  43.                     for (j = 0; j <= m - 1; j++)
  44.                     {
  45.                         str = str + mas2[i, j] + "  ";
  46.                     }
  47.                     listBox2.Items.Add(str);
  48.                 }
  49.             }else // если не четное число строк то показываем сообщение ниже и программа завершает работу
  50.             {
  51.                 MessageBox.Show("Необходимо ввести четное число строк");
  52.             }
  53.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement