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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
#1

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

01.11.2011, 18:54. Просмотров 816. Ответов 9
Метки нет (Все метки)

помогите пожалуйста написать вот такую задачу:
Дана целочисленная квадратная матрица порядка 5. Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке.

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

Найти произведение ненулевых элементов и количество нулевых элементов - C++
дан вектор Х (20).найти произведение ненулевых элементов и количество нулевых элементов

Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции) - C++
Удалить из матрицы А (7х5) все строки, сумма элементов которых четна, а из матрицы В (6х8) – строки, сумма элементов которых нечетна.

Составить программу вычисления количества не нулевых элементов второй строки матрицы - C++
1.Составить программу вычисления количества не нулевых элементов второй строки матрицы C(N,N). 2.Дана действительная квадратная матрица...

Определить количество ненулевых элементов в каждой нечетной строке матрицы - C++
Определить количество ненулевых элементов в каждой нечетной строке матрицы G (4,4). Вывести количество ненулевых элементов и номера...

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

Удалить из матрицы строку, содержащую наибольшее количество нулевых элементов - C++
Удалить из матрицы A(m*n) строку, содержащую наибольшее количество нулевых элементов. Программа отлажена работает, но падает когда...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
01.11.2011, 21:28 #2
а вы покажите пожалуйста что уже есть ...
0
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);



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

C++
1
int matrix[4][5];
На мой взгляд это объявление не квадратной матрицы.
0
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;
}
1
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:57  [ТС] #6
ввожу строки
после ввода 5 ничего не происходит
0
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
01.11.2011, 21:59 #7
Закрывается окно?
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:59  [ТС] #8
да именно
0
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>
0
nemesises
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
02.11.2011, 12:52  [ТС] #10
всё заработало, спасибо большое, за уделённое время

Добавлено через 14 часов 44 минуты
а можно код если ассив вводить отдельным классом, и чтобы матрица выводилась на экран рандомом и после удаления оставалась та же матрица только без удалённой строки
заранее спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2011, 12:52
Привет! Вот еще темы с ответами:

Составить программу для подсчета количества четных, нечетных и нулевых элементов матрицы - C++
Дана матрица 3х4. Составить программу для подсчета количества четных, нечетных и нулевых элементов матрицы. Буду очень благодарен за...

Найти количество ненулевых элементов и сумму элементов, значения которых меньше 2 - C++
Найти кол-во ненулевых элементов и сумму элементов , значения которых меньше 2 .Вывести найденную сумму и кол-во (Если они не...

В каждой строке матрицы найти количество элементов, меньших среднего арифметического элементов строки - C++
Дана матрица размера MxN. В каждой ее строке найти количество элементов, меньших среднего арифметического всех элементов этой строки.

Сформировать одномерный массив, содержащий количество нулевых элементов каждой строки матрицы - C++
Дана целочисленная матрица m x m . Определить количество отрицательных элементов в треугольнике выше главной и ниже побочной диагонали....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.11.2011, 12:52
Ответ Создать тему
Опции темы

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