Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
2 / 2 / 2
Регистрация: 17.03.2015
Сообщений: 147

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

29.10.2015, 19:20. Показов 3050. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите каким образом можно реализовать следующее:
В прямоугольной целочисленной матрице определить кол-во отрицательных элементов в тех строчках, в которых есть хотя бы один нулевой элемент. (Вывести на экран должно номер строки с нулевым элементом + кол-во отрицательных элементов в нем). А так же индексы всех элементов, которые на iой строке являются минимальными, но максимальными в jом столбце.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2015, 19:20
Ответы с готовыми решениями:

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

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

Определить количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент
Нужно было определить количество отрицательных элементов в тех строках , которые содержат хотя бы один нулевой элемент. Я на c++ понимаю ,...

3
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
29.10.2015, 20:14
UltimateDoker, что можно использовать, сразу оговаривайте: пользовательские функции, пользовательские классы, STL, ламбды, шаблоны? Или как всегда "мы кроме цикла for и if else ничего ещё не учили"?

Добавлено через 8 минут
Цитата Сообщение от UltimateDoker Посмотреть сообщение
Подскажите каким образом можно реализовать
1) способ первый (самый отстойный и гемморойный): всё в функции main() на циклах и if else
2) способ второй: с помощью самописных функций
3) способ третий: с помощью самодельного класса "Матрица"
4) способ четвёртый: с помощью STL

Добавлено через 4 минуты
Цитата Сообщение от UltimateDoker Посмотреть сообщение
каким образом реализовать
План простой. Надо создать функции (или функции-члены, если у Вас будет самописный класс), реализующие следующие возможности:
1) создание матрицы
2) заполнение матрицы случайными значениями
3) вывод на экран нужной информации
4) поиск элемента по заданному значению
5) удаление матрицы
0
2 / 2 / 2
Регистрация: 17.03.2015
Сообщений: 147
29.10.2015, 20:18  [ТС]
Это все понятно, использовать можно все. Проблема состоит именно в идее, каким образом можно запомнить только, для каждой строки содержащей ноль, кол-во отрицательных.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
29.10.2015, 21:15
Цитата Сообщение от UltimateDoker Посмотреть сообщение
Проблема состоит именно в идее, каким образом можно запомнить только, для каждой строки содержащей ноль, кол-во отрицательных.
Например, так можно найти и запомнить индекс элемента, значение которого равно value:
C++
1
2
3
4
5
6
// объявим свой тип данных:
struct Index
{
    int m_row = 0;
    int m_col = 0;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// напишем определение (реализацию) функции поиска элемента равного
// заданному значению value и возвращающей индексы местоположения
// (ряда и столбца) этого элемента в нашей матрице:
Index find_index_of_element(Item ** matrix, const int row, const int col, const int value)
{
    Index index_of_element;
    
    for (int i = 0; i < row; ++i)
        for (int j = 0; j < col; ++j)
        {
            if (matrix[i][j] == value)
            {
                index_of_element.m_row = i;
                index_of_element.m_col = j;
            }
                
        }
    
    return index_of_element;
}
Добавлено через 6 минут
Цитата Сообщение от UltimateDoker Посмотреть сообщение
для каждой строки содержащей ноль
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool has_zero(Item ** matrix, const int row, const int col)
{
    bool result = false;
    
    for (int j = 0; j < col; ++j)
    {
        if (matrix[row][j] == 0)
        {
            result = true;
            break;
        }
            
    }
    
    return result;
}
Добавлено через 7 минут
Цитата Сообщение от UltimateDoker Посмотреть сообщение
кол-во отрицательных
C++
1
2
3
4
5
6
7
8
9
10
int count_in_row_elements_less_than(Item ** matrix, const int row, const int col, const int value)
{
    int count = 0;
    
    for (int j = 0; j < col; ++j)
        if (matrix[row][j] < value)
            ++count;
    
    return count;
}
Добавлено через 7 минут
Ну и в мэйне находим искомое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < row; ++i)
{
    if (has_zero(matrix, i, col))
    {
        std::cout << "\nIn "
                  << i
                  << " row was found "
                  << count_in_row_elements_less_than(matrix, i, col, 0)
                  << " elements less than 0.";
        
    }
}
Добавлено через 12 минут
Короче, вот:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <random>
#include <ctime>
 
typedef int Item;
 
void fill_rand(Item ** matrix, const int row, const int col, Item fromNum, Item toNum);
void show_matrix(Item ** const matrix, const int row, const int col);
bool has_zero(Item ** matrix, const int row, const int col);
int count_in_row_elements_less_than(Item ** matrix, const int row, const int col, const int value);
 
int main()
{
    std::cout << "Please enter the size of the matrix.\n"
                 "Enter the number of the rows: ";
    int m;
    std::cin >> m;
 
    std::cout << "Enter the number of the columns: ";
    int n;
    std::cin >> n;
 
    Item ** C = new Item * [m];
    for (int i = 0; i < m; ++i)
        C[i] = new Item[n];
 
    fill_rand(C, m, n, -10, 10);
    show_matrix(C, m, n);
 
    bool flag = true;
    for (int i = 0; i < m; ++i)
    {
        if (has_zero(C, i, n))
        {
            std::cout << "\nIn "
                      << i
                      << " row was found "
                      << count_in_row_elements_less_than(C, i, n, 0)
                      << " negative elements.\n";
            flag = false;
        }
    }
 
    if (flag)
        std::cout << "\nThis matrix has not elements equals to zero.";
 
    for (int i = 0; i < m; ++i)
        delete [] C[i];
    delete [] C;
 
    return 0;
}
 
void fill_rand(Item ** matrix, const int row, const int col, Item fromNum, Item toNum)
{
    std::mt19937 gen(time(0));
    std::uniform_int_distribution<int> urd(fromNum, toNum);
    for (int i = 0; i < row; ++i)
        for (int j = 0; j < col; ++j)
            matrix[i][j] = urd(gen);
}
 
void show_matrix(Item ** const matrix, const int row, const int col)
{
    std::cout << "\n";
    for (int i = 0; i < row; ++i)
    {
        for (int j = 0; j < col; ++j)
            std::cout << matrix[i][j] << "\t";
        std::cout << "\n";
    }
}
 
bool has_zero(Item ** matrix, const int row, const int col)
{
    bool result = false;
 
    for (int j = 0; j < col; ++j)
    {
        if (matrix[row][j] == 0)
        {
            result = true;
            break;
        }
 
    }
 
    return result;
}
 
int count_in_row_elements_less_than(Item ** matrix, const int row, const int col, const int value)
{
    int count = 0;
 
    for (int j = 0; j < col; ++j)
        if (matrix[row][j] < value)
            ++count;
 
    return count;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2015, 21:15
Помогаю со студенческими работами здесь

Определить количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1. Количество отрицательных элементов в тех строках, которые содержат хотя бы ...

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

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

Дана матрица А , размером n x m. Определить количество отрицательных элементов в тех строках , которые содержат хотя бы один нулевой Элемент
знаю что с матрицами много тем но такой не видел , и не могу разобратся что не так ,помогите #include &quot;stdafx.h&quot; #include...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru