Сформировать матрицу по правилу - 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();
        }
    }

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


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

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

6   голосов , оценка 4.333 из 5
Похожие ответы