Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44

Матрица: определить количество строк, не содержащих ни одного нулевого элемента

05.05.2013, 11:54. Показов 2448. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
для решения задач:
1) определить количество строк, не содержащих ни одного нулевого
элемента;
2) найти максимальное из чисел, встречающихся в заданном массиве
более одного раза.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <conio.h> 
#include <stdio.h>
int main()
{
    int mas[5] [7];
    const int kolStr = 5, kolStb = 7; 
    int i, j,max, mas[kolStr][kolStb] = {0};
    max = mas[0][0];
for (i = 0; i < kolStr; i++)
for (j = 0; j < kolStb; j++)
if (mas[i][j] > max) max = mas[i][j];
}
getch();
return 0;
}
зпутался совсем....не могу дальше
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2013, 11:54
Ответы с готовыми решениями:

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

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

Данная целочисленная прямоугольная матрица. Определить количество строк, не содержащих ни одного нулевого элемента
Эту же задачу я видел здесь https://www.cyberforum.ru/cpp-beginners/thread683947.html ,но там она решена не правильно. Вместо того чтобы...

18
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 12:08
Цитата Сообщение от sergey 7 7 Посмотреть сообщение
int mas[5] [7];
* * const int kolStr = 5, kolStb = 7;
* * int i, j,max, mas[kolStr][kolStb] = {0};
Что ЭТО?

Добавлено через 41 секунду
Зачем два раза(да еще и второй раз неправильно) инициализируете массив?

Добавлено через 8 минут
А нет, второй раз тоже правильно. прошу прощения. Но зачем два раза?
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 12:09  [ТС]
хотел совместить два цикла этих.....чтоб один делал 1 задание а другой искал 2....
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 12:14
sergey 7 7, нет,вопрос не в том. Зачем инициализация два раз?
Первый раз Вы создали массив в этой строке
Цитата Сообщение от sergey 7 7 Посмотреть сообщение
int mas[5] [7];
а второй раз в этой
Цитата Сообщение от sergey 7 7 Посмотреть сообщение
int i, j,max, mas[kolStr][kolStb] = {0};
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 12:20  [ТС]
то есть в 1 задании цикл должен работать с массивом где 7 строк.......искать кол-во этих строк где нет ноля.....а 2 должен найти максимальное значение которое встречается более двух раз....так хотел...
как тогда сделать правильно?допустим я уберу второй массив....но мне нужен именно 1 массив из 5 строк и 7 столбцов
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 12:23
Цитата Сообщение от sergey 7 7 Посмотреть сообщение
int mas[5] [7];
Вот Ваш массив из 5 строк и 7 столбцов
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 12:24  [ТС]
я понял...теперь надо выполнить эти задания...как сделать?
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 12:30
первое задание как-то так
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
#include <iostream>
using namespace std;
 
const int strsNum=5;
const int rowsNum=7;
 
int main()
{
    int number=0;
    int mas[strsNum][rowsNum];
    for (int i=0;i<strsNum;++i)
    {
        bool temp=true;
        for (int j=0;j<rowsNum;++j)
        {
            if (mas[i][j]==0) temp=false;
            break;
        }
        if (temp) ++number;
    }
    cout<<number<<endl;
    system ("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 12:39  [ТС]
а 2 как?
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 12:56
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
#include <algorithm>
#include <iterator>
#include <iostream>
using namespace std;
 
const int strsNum=5;
const int rowsNum=7;
 
int main()
{
    int number=0;
    int mas[strsNum][rowsNum];
    for (int i=0;i<strsNum;++i)
    {
        bool temp=true;
        for (int j=0;j<rowsNum;++j)
        {
            if (mas[i][j]==0) temp=false;
            break;
        }
        if (temp) ++number;
    }
    cout<<number<<endl;
    
    multiset<int, less<int>> MySet;
    for (int i=0;i<strsNum;++i)
        for (int j=0;j<rowsNum;++j)
            MySet.insert(mas[i][j]);
    multiset<int, less<int>>::const_iterator rez=MySet.cbegin();
    while((MySet.count(*rez)<=1)&&(rez!=MySet.cend()))
    {
        rez++;
    }
    if(rez!=MySet.cend())
        cout<<*rez<<endl;
    system ("pause");
    return 0;
}
Возможно немного сложновато получилось,но Вы спрашивайте, если не понятно
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 13:02  [ТС]
Цитата Сообщение от metaluga145 Посмотреть сообщение
for (int i=0;i<strsNum;++i)
* * {
* * * * bool temp=true;
это значит что i меньше 5,то есть если это не так....не выполнится условие,если так то истина?

Цитата Сообщение от metaluga145 Посмотреть сообщение
multiset<int, less<int>> MySet;
* * for (int i=0;i<strsNum;++i)
* * * * for (int j=0;j<rowsNum;++j)
* * * * * * MySet.insert(mas[i][j]);
* * multiset<int, less<int>>::const_iterator rez=MySet.cbegin();
вот эту часть кода поподробней пожалуйста.....и что такое temp?

Цитата Сообщение от metaluga145 Посмотреть сообщение
while((MySet.count(*rez)<=1)&&(rez!=MySe t.cend()))
* * {
* * * * rez++;
* * }
* * if(rez!=MySet.cend())
и здесь немного непонятно....
так это было 2 задание?
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 13:07
sergey 7 7, там вся программа вместе. и первое и второе задание.
почитайте про multiset. Вам сразу станет ясно
1
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 13:10  [ТС]
спасибо)если что обращусь к вам
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 13:13
sergey 7 7, Сейчас, я немного налажал в коде. Сейчас поправлю
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 13:15  [ТС]
хорошонадо будет только всё понять в нём
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 13:21
Вот правильный и точно работающий код(два задания сразу, но без заполнения массива)
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
#include "stdafx.h"
#include <set>
#include <algorithm>
#include <iterator>
#include <iostream>
using namespace std;
 
const int strsNum=5;
const int rowsNum=7;
 
int main()
{
    int number=0;
    int mas[strsNum][rowsNum];
    for (int i=0;i<strsNum;++i)
    {
        bool temp=true;
        for (int j=0;j<rowsNum;++j)
        {
            if (mas[i][j]==0) temp=false;
            break;
        }
        if (temp) ++number;
    }
    cout<<number<<endl;
    
    multiset<int, less<int>> MySet;
    for (int i=0;i<strsNum;++i)
        for (int j=0;j<rowsNum;++j)
            MySet.insert(mas[i][j]);
    ostream_iterator<int> output(cout, " ");
    copy(MySet.begin(),MySet.end(), output);
    multiset<int, less<int>>::const_reverse_iterator rez=MySet.crbegin();
    while((MySet.count(*rez)<=1)&&(rez!=MySet.crend()))
    {
        rez++;
    }
    if(rez!=MySet.crend())
        cout<<endl<<*rez<<endl;
    system ("pause");
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от sergey 7 7 Посмотреть сообщение
хорошонадо будет только всё понять в нём
да в принципе, ничего там сложного нету. немного почитайте) об этом очень хорошо написано у Дейтела, я оттуда часть кода писал.
0
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 13:30  [ТС]
Цитата Сообщение от metaluga145 Посмотреть сообщение
multiset<int, less<int>> MySet;
* * for (int i=0;i<strsNum;++i)
* * * * for (int j=0;j<rowsNum;++j)
* * * * * * MySet.insert(mas[i][j]);
* * ostream_iterator<int> output(cout, " ");
* * copy(MySet.begin(),MySet.end(), output);
* * multiset<int, less<int>>::const_reverse_iterator rez=MySet.crbegin();
объясните эту часть кода?и автора точнее пожалуйста....
0
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
05.05.2013, 13:47
Создаем структуру multiset, в которой будут хранится значения типа int и они должны быть упорядочены по возрастанию ( less<int>-это часть отвечает за порядок)
C++
1
multiset<int, less<int>> MySet;
Вводим элементы массива в наш multiset
C++
1
2
3
    for (int i=0;i<strsNum;++i)
        for (int j=0;j<rowsNum;++j)
            MySet.insert(mas[i][j]);
Инициализировали итератор вывода в поток cout, а потом вывели значения всех элементов нашего multiset
C++
1
2
ostream_iterator<int> output(cout, " ");
copy(MySet.begin(),MySet.end(), output);
Инициализировали константный итератор rez, с помощью которого будем идти задом на перед(потому что наибольшие элементы лежат в конце multiset.
C++
1
multiset<int, less<int>>::const_reverse_iterator rez=MySet.crbegin();
Добавлено через 1 минуту
Книга Харви М. Дейтел, Пол Дж. Дейтел "Как программировать на с++"
1
0 / 0 / 1
Регистрация: 07.04.2013
Сообщений: 44
05.05.2013, 13:49  [ТС]
ещё почитаю литературу....стало попонятней...огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.05.2013, 13:49
Помогаю со студенческими работами здесь

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

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

Матрица (Объяснить, как запись считает количество строк не содержащих ни одного нулевого элемента)
Объясните пожалуйста ,как вот эта запись считает количество строк не содержащих ни одного нулевого элемента. Что мы находим с помощью S++...

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

Определить количество строк, не содержащих ни одного нулевого элемента
#include &lt;iostream&gt; using namespace std; void main() { setlocale(LC_ALL, &quot;Russian&quot;); int mass=256;// обьявили двумерный...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru