0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
1

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

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

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

Если можно, скиньте сюда полный работающий код программы
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2011, 18:54
Ответы с готовыми решениями:

В каждой строке матрицы найти элементы, для которых сумма предшествующих элементов больше суммы последующих элементов
Проверьте пожалуйста код программы относительно условия задачи В каждой строке матрицы D(n, n),...

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

Удалить строки матрицы, в которых четных элементов больше, чем нечетных
Дана квадратная матрица A(nхn). Удалить строки матрицы, в которых четных элементов больше, чем...

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

9
Linux-оид
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
01.11.2011, 21:28 2
а вы покажите пожалуйста что уже есть ...
0
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
33 / 32 / 7
Регистрация: 13.12.2010
Сообщений: 342
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
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:57  [ТС] 6
ввожу строки
после ввода 5 ничего не происходит
0
33 / 32 / 7
Регистрация: 13.12.2010
Сообщений: 342
01.11.2011, 21:59 7
Закрывается окно?
0
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
01.11.2011, 21:59  [ТС] 8
да именно
0
33 / 32 / 7
Регистрация: 13.12.2010
Сообщений: 342
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
0 / 0 / 0
Регистрация: 01.11.2011
Сообщений: 42
02.11.2011, 12:52  [ТС] 10
всё заработало, спасибо большое, за уделённое время

Добавлено через 14 часов 44 минуты
а можно код если ассив вводить отдельным классом, и чтобы матрица выводилась на экран рандомом и после удаления оставалась та же матрица только без удалённой строки
заранее спасибо
0
02.11.2011, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2011, 12:52
Помогаю со студенческими работами здесь

Найти все строки матрицы, количество положительных элементов которых больше 5
Дан массив R(6,6).найти все строки, количество положительных элементов которых больше 5 и...

Найти произведение ненулевых элементов и количество нулевых элементов одномерного массива
Здравствуйте! Помогите, пожалуйста, сделать программу в Лазарусе 1. Дан одномерный массив. Найти...

Найти произведение ненулевых элементов и количество нулевых элементов массива
Дан одномерный массив. Найти произведение ненулевых элементов и количество нулевых элементов. ...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru