Сформировать матрицу по правилу - C# (193097)
Формулировка задачи:
Всем привет! Никак не могу разобраться с задачей! Есть двумерный массив double[n, 7]. Нужно его сформировать таким образом, чтобы элемент a[i, 3] > 5, если он меньше, то складывать строки в этом столбце ниже (или выше), пока a[i, 3] <=5. При складывании удалить лишние строчки.
Например
Input
1, 2, 3, 1, 0.125, 3, 0.1
1, 2, 3, 6, 1.1, 4, 5
1, 2, 3, 1, 2, 3, 2
1, 2, 3, 3, 4, 5, 0.01
1, 2, 3, 2, 5, 3, 0.001
1, 2, 3, 7, 123, 32, 0.9
Output
1, 2, 3, 7, 0.125, 3, 0.1
1, 2, 3, 6, 2, 3, 2
1, 2, 3, 7, 123, 32, 0.9
Так же возможны и другие случаи
Решение задачи: «Сформировать матрицу по правилу»
textual
Листинг программы
class Program { static void Main(string[] args) { Console.Write("Ввести количество строк n: "); int n = Convert.ToInt32(Console.ReadLine()); double[,] mass = new double[n, 7]; Console.Write("\nИсходный массив:\n\n"); Random rnd = new Random(); for (int i = 0; i < n; i++) { for (int j = 0; j < 7; j++) { mass[i, j] = Convert.ToDouble(rnd.Next(1, 100)) / 10; Console.Write("{0} ", mass[i, j]); } Console.WriteLine(); } int k = 0; while (k < n) { if (mass[k, 3] <= 5) { for (int m = 0; m < 7; m++) { if (n > k + 1) { mass[k, m] += mass[k + 1, m]; for (int l = k + 1; l < n - 1; l++) mass[l, m] = mass[l + 1, m]; } else { mass[k - 1, m] += mass[k, m]; } } n -= 1; } else k += 1; } Console.Write("\nНовый массив:\n\n"); for (int p = 0; p < n; p++) { for (int s = 0; s < 7; s++) Console.Write("{0} ", mass[p, s]); Console.WriteLine(); } Console.Read(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д