Сдвинуть столбцы определенной строки в матрице влево - C#

Узнай цену своей работы

Формулировка задачи:

Имеется какая-то матрица. В зависимости от того какое число вводит пользователь, в определенной строке числа сдвигаются влево. Первое число встает на место последнего. Примерно так это должно выглядеть исходный массив: 1 2 3 4 5 1 2 3 4 5 5 1 2 3 4 1 2 3 4 5 1 2 3 4 5 введите число от 1 до 5 5 итоговый массив: 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 т.е. смотрим на первое число в каждой строке и сравниваем его с введенным числом. Если они равны - эту строку и меняем. т.е. если пользователь ввел бы 1, то результат был бы таким: 2 3 4 5 1 2 3 4 5 1 5 1 2 3 4 2 3 4 5 1 2 3 4 5 1 Я тут накидал на скорую руку, но чет у меня меняются местами только первые два числа. Что я делаю не так?
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. int N = 5, M = 5;
  4. int[,] a = new int[N, M];
  5. Random random = new Random();
  6. int rand;
  7. for (int i = 0; i < N; i++)
  8. {
  9. for (int j = 0; j < M; j++)
  10. {
  11. rand = random.Next(1, 6);
  12. a[i, j] = rand;
  13. }
  14. }
  15. Console.WriteLine("исходная матрица:");
  16. for (int i = 0; i < N; i++)
  17. {
  18. for (int j = 0; j < M; j++)
  19. Console.Write(a[i, j] + " ");
  20. Console.WriteLine();
  21. }
  22. Console.WriteLine("введите число от 1 до 5");
  23. int c = int.Parse(Console.ReadLine());
  24. for (int i = 0; i < N; i++)
  25. {
  26. for (int j = 1; j < M; j++)
  27. {
  28. for (int k = j - 1; k < M; k++)
  29. {
  30. if (a[i, 0] == c)
  31. {
  32. int p = a[i, j];
  33. a[i, j] = a[i, k];
  34. a[i, k] = p;
  35. }
  36. }
  37. }
  38. }
  39. Console.WriteLine("конечная матрица:");
  40. for (int i = 0; i < N; i++)
  41. {
  42. for (int j = 0; j < M; j++)
  43. Console.Write(a[i, j] + " ");
  44. Console.WriteLine();
  45. }
  46. Console.ReadKey();
  47. }

Решение задачи: «Сдвинуть столбцы определенной строки в матрице влево»

textual
Листинг программы
  1. for (int i = 0; i < N; i++)
  2. {
  3.     if (a[i, 0] == c)
  4.     {
  5.         for (int j = 1; j < M; j++)
  6.             a[i, j - 1] = a[i, j];
  7.         a[i, M - 1] = c;
  8.     }
  9. }

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


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

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

10   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы