Сравнение значений элементов строки и столбца (не отрабатывает) - C#

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

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

Здравствуйте! Никак не могу добиться толку, чтот с i j видимо путаю, подскажите плиз

где

Нужно: Удалить из массива k-тую строку и j-тый столбец, если их значения совпадают Делаю рандомный

квадратный

массив, так чтоб значения каждой строки совпадали со значениями столбцов(чтоб руки не мучить)
            Random r = new Random(DateTime.Now.Millisecond);
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < m; ++j)
                {
                    a[i, j] = r.Next(-99, 99);
                    a[j, i] = a[i, j];//для case 5
                }
k - задаю с клавы и передаю в метод
int k_str = int.Parse(Console.ReadLine());
IfStrCol(a, ref n, ref m, k_str);
и собственно метод, который не получается пока что пробую удалить хотя-бы столбец (
        static void IfStrCol(int[,] a, ref int n, ref int m, int k_str)
        {
            for (int j = 0; j < m; j++)
            {
                bool f = true;
                for (int i = 0; i < n; i++)
                {   
                    if (a[i, j] != a[k_str, j])//(a[j, k_str] != a[j, i])  
                    {
                        f = false;
                        break;
                    }
                }
                
                if (f) 
                    for (; j < m; j++)
                        for (int i = 0; i < n; i++)
                            a[i, j] = a[i, j + 1];
                m--;
            }
        }
но получается какая-то #опа, уже как только не крутил эти i j ...удаляет совсем не то, что нужно(( подскажите плиз, где я накосячил

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

textual
Листинг программы
                   //предаю (массив, n и m(которые равны), k-ю строку)
        static void IfStrCol(int[,] a, ref int n, ref int m, int k_str)
        {
            for (int j = 0; j < m; j++)
            {
                bool f = true;
                for (int i = 0; i < n; i++)
                {
                    if (a[k_str, j] != a[i, j])
                    {
                        f = false;
                        break;
                    }
                }
                
                if (f) 
                    for (; j < m; j++)
                        for (int i = 0; i < n; i++)
                            a[i, j] = a[i, j + 1];
                m--;              
            }
        }

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


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

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

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