Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор xor https://www.cyberforum.ru/ cpp-beginners/ thread629687.html
Всем добрый вечер.Чем отличаются следующие выражения: (a || b) && !(a && b); и (a^b);
C++ Лафоре задача по классам
Задача из книги лафоре по классам №7: нужно написать программу используя классы для ввода и вывода координат, кроме того нужно написать конструктор который будет принимать 3 аргумента и написать...
C++ Не удается найти ошибку
Линкер ругается (2001) на не разрешенный внешний символ, гуглил но не втыкнул из-за чего конкретно он выдает эту ошибку.Вот код: //заголовок #ifndef SAVINGSACCOUNT_H #define SAVINGSACCOUNT_H ...
C++ Таймеры Здравствуйте, скажите какие есть готовые таймеры? Пользовался поиском, нашел только winapi и простую библиотеку time.h, только почему то используя функцию clock() у меня выводится результат = 0... https://www.cyberforum.ru/ cpp-beginners/ thread629653.html
C++ Применение https://www.cyberforum.ru/ cpp-beginners/ thread629640.html
Возможно вы посчитаете данный вопрос глупым. Но я его задам. Где можно применять C++ и C программисту, при этом не используя GUI? И возможно-ли потом к определенной программе без GUI прикрутить...
Автоматическое выведение типа C++
У С. Прата встретил вот такой непонятный код const double *f2(const double arr, int n) { return arr; } int main() { auto p2 = f2; // Автоматическое выведение типа С++11
C++ Дробные числа
Дpoбныe числa oкpyглить дo 2 знaкoв пoслe зaпятoй как это можно сделать. к примеру число 23.333 его нужно округлить до 2 знаков или 23.69954
C++ Спецификатор доступа и виртуальные функции Как я понимаю, спецификатор доступа задается только в том классе, где функция объявляется виртуальной? Получается во время исполнения не проверяется спецификатор доступа? Ну вот например код: ... https://www.cyberforum.ru/ cpp-beginners/ thread629633.html
C++ Argc, Argv замена https://www.cyberforum.ru/ cpp-beginners/ thread629625.html
Всем доброго времени суток, столкнулся с такой проблемой, нет возможности в параметрах ф-ции указать вышеупомянутые параметры, а указать их нужно, т.к. в коде есть такие строчки: char* qwe = argc >=...
C++ Вычисление длины двухмерного массива Напишите программу, возвращающую длину двухмерного вектора по заданным значениям координат его концов. https://www.cyberforum.ru/ cpp-beginners/ thread629601.html
59 / 59 / 8
Регистрация: 15.10.2010
Сообщений: 356
27.07.2012, 21:53 0

Удаление нулевой(-ых) строчки и столбца из матрицы

27.07.2012, 21:53. Просмотров 4749. Ответов 15
Метки (Все метки)

Ответ

Что то вроде этого.
Не компиллил. Возможны небольшие баги. Но вроде - верно.
Оформил процедуру для строк. Для столбцов - попробуйте сами по аналогии.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    // Ввод данных
    // ...
    
    // Непосредственная обработка
    
    // Сначала - идем по строкам
    int *buf = new int(colCount);   // Массив нулевых строк
    int currentBufIndex = 0;
    for (int i = 0; i < rowCount; i++)
    {
        bool b = true;
        for (int j = 0; j < colCount; j++)
        {
            if (matr[i][j] != 0)
            {
                b = false;
                break;
            }
        }
        if (b == true)
        {
            // i - ая строка - нулевая
            // Занесем ее в массив для удаления
            buf[currentBufIndex] = i;
            currentBufIndex++;
        }
    }
    
    // Непосредственное удаление
    int currentBufIndex_1 = 0;
    int lineOffset = 0;
    for (int i = 0; i < rowCount - currentBufIndex; i++)
    {
        // Сдвигаемся построчно вверх
        if (i == buf[currentBufIndex_1])
        {
            // Увеличиваем счетчик сдвига
            lineOffset++;
            // Сдвигаемся к следующему элементу массива
            currentBufIndex_1++;
        } else {
            // Текущая строка - значимая
            // => сдвигаемся
            for (int j = 0; j < colCount; j++)
            {
                matr[i - lineOffset][j] = matr[i][j];
            }
        }
    }
    // Все сдвиги - произведены. Уменьшаем число строк
    rowCount -= currentBufIndex;
    
    delete buf;
    
    // Аналогично - со строками.
    // ...


Вернуться к обсуждению:
Удаление нулевой(-ых) строчки и столбца из матрицы
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2012, 21:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление столбца из матрицы
Добрый день. Прошу ткнуть носом, где я опять дурак. Есть матрица на основе ArrayList задача простая...

Удаление столбца матрицы
Здравствуйте. Есть матрица N*M, в ней нужно удалить k-ый столбец. Все эти данные вводятся с...

Удаление столбца матрицы
Пожалуйста, помогите решить задачу!!! Тема: &quot;Действия над строками и столбцами матрицы&quot; Задача:...

Удаление строки и столбца из матрицы
Добрый день. у Меня возникла проблема, не могу понять, как удалить из массива строку и столбец с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.