Сформировать матрицу по правилу - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д