Форум программистов, компьютерный форум CyberForum.ru

Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке - C++

Восстановить пароль Регистрация
 
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 18:54     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #1
помогите пожалуйста написать вот такую задачу:
Дана целочисленная квадратная матрица порядка 5. Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке.

Если можно, скиньте сюда полный работающий код программы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 18:54     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке
Посмотрите здесь:

Определить количество элементов матрицы у которых слева в его строке находятся элементы меньше его,а справа больше C++
C++ Составить программу вычисления количества не нулевых элементов второй строки матрицы
Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции) C++
C++ Массивы. Определить количество элементов в каждой строке матрицы А, модуль которых равняется порядковому номеру элемента в строке
C++ Сформировать одномерный массив, содержащий количество нулевых элементов каждой строки матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
01.11.2011, 21:28     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #2
а вы покажите пожалуйста что уже есть ...
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:31  [ТС]     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #3
//Заводим место под матрицу
int matrix[4][5];
//Заводим место под "карту строк": 1 - на месте, 0 - удалена
int rowsInMatrix[5];
//Вводим (или как-то ещё получаем) матрицу
void InitMatrix(int* matrix, int* rowsList){
}
//matrix и rowsInMatrix всюду ходят парой, обратите внимание
InitMatrix(matrix, rowsInMatrix);
//Для всех строк
for(int i=0; i<5; ++i){
//Если в строке (i-той _с_учётом_удалённых_) не нулей больше, чем нулей
if(NonZerosMoreThanZeros(matrix, rowsInMatrix, i)){
//Удалить строку
RemoveString(matrix, rowsInMatrix, i);
}
}
//Показать матрицу
DisplayMatrix(matrix, rowsInMatrix);



такое есть,но там ошибка какая-то
Сыроежка
Заблокирован
01.11.2011, 21:35     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #4
Но у вас в программе объявлена не квадратная матрица! Вы пишите

C++
1
int matrix[4][5];
На мой взгляд это объявление не квадратной матрицы.
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
01.11.2011, 21:49     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #5
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int matrica[5][5];
 
    for(int i = 0; i < 5; i++){
        cout << "Stroka " << i + 1 << endl;
        for(int j = 0; j < 5; j++)
            cin >> matrica[i][j];
    }
 
    for(int i = 0; i < 5; i++){
        int nol = 0, ne_nol = 0;
        for(int j = 0; j < 5; j++){
            if(matrica[i][j] == 0)
                nol++;
            if(matrica[i][j] != 0)
                ne_nol++;
        }
        if(ne_nol < nol){
            cout << endl << "Stroka " << i + 1 << endl;
            for(int j = 0; j < 5; j++){
                cout << matrica[i][j];
            }
        }
    }
 
    return 0;
}
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:57  [ТС]     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #6
ввожу строки
после ввода 5 ничего не происходит
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
01.11.2011, 21:59     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #7
Закрывается окно?
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:59  [ТС]     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #8
да именно
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
01.11.2011, 22:03     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #9
подключите windows.h
допишите перед return 0; это - system("pause");

Вот так
C++
1
2
3
#include <windows.h>
//код программы
system("pause");
Если работаете в windows должно заработать. Если нет, то вместо #include <windows.h>, вставьте #include <cstdlib>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2011, 12:52     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке
Еще ссылки по теме:

Составить программу для подсчета количества четных, нечетных и нулевых элементов матрицы C++
C++ Найти произведение ненулевых элементов и количество нулевых элементов
C++ 16. Удалить из матрицы строку, содержащую наибольшее количество нулевых элементов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
02.11.2011, 12:52  [ТС]     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке #10
всё заработало, спасибо большое, за уделённое время

Добавлено через 14 часов 44 минуты
а можно код если ассив вводить отдельным классом, и чтобы матрица выводилась на экран рандомом и после удаления оставалась та же матрица только без удалённой строки
заранее спасибо
Yandex
Объявления
02.11.2011, 12:52     Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru