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

Определить количество строк матрицы, которые не содержат ни одного нулевого элемента - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Iryna_Light
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 41
02.02.2014, 22:46     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #1
Пожалуйста помогите!
Данная прямоугольная целочисленная матрица. определить:
количество строк, которые не содержат ни одного нулевого элемента;
максимальное из чисел, встречающихся в заданной матрице более одного раза.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2014, 22:46     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента
Посмотрите здесь:

C++ Необходимо подсчитать количество строк матрицы, которые не содержат ни одного 0 элемента.
C++ Найти количество столбцов матрицы, которые не имеют ни одного нулевого элемента
Определить: количество строк, не содержащих ни одного нулевого элемента; C++
Определить количество строк матрицы, не содержащих ни одного нулевого элемента C++
Матрица: определить количество строк, не содержащих ни одного нулевого элемента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mendow
1 / 1 / 0
Регистрация: 31.07.2013
Сообщений: 13
03.02.2014, 03:22     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #2
Цикл обхода строки с условием на нахождение не нулевого элемента ,если находиться элемент не равный нулю сразу переходить на новую строку ,если же дошли до конца строки счетчик строк увеличить на один.

Пока обходите массив. находить самый большой элемент и далее сравниваете его с встречающимися если находите заканчиваете цикл .
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
03.02.2014, 06:22     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Iryna_Light
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int main()
{
    srand(time(0));
    const int H = 8, W = 15; 
    int M[H][W], counter = 0, max, result, row = 0;
    cout << "Matrix[H][W]";   
    cout << "\n\n";
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - rand() % 200;
            cout << setw(4) << M[i][j];
            if(M[i][j] == 0)
                counter++;
        }
        cout << "\n\n";
        if(counter > 0)
            row++;
        counter = 0;
    }
    
    for(int loop = 0; loop <= (H * W); loop++)
    {
        for(int i = 0; i < H; i++)
        {
            for(int j = 0; j < W - 1; j++)
            {
                if(M[i][j] > M[i][j + 1])
                {
                    int temp = M[i][j];
                    M[i][j] = M[i][j + 1];
                    M[i][j + 1] = temp;
                }
            }
        }
        for(int i = 0; i < W; i++)
        {
            for(int j = 0; j < H - 1; j++)
            {
                if(M[j][i] > M[j][i + 1])
                {
                    int temp = M[j][i];
                    M[j][i] = M[j][i + 1];
                    M[j][i + 1] = temp;
                }
            }
        }
    }
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            max = M[i][j];
            for(int i = 0; i < H; i++)
            {
                for(int j = 0; j < W; j++)
                {
                    if(max == M[i][j])
                    {
                        counter++;
                    }
                    if(counter > 1)
                    {
                        result = max;
                        break;
                    }
                }
            }          
            counter = 0;
        }
    }
    
    cout << "\nRows: " << H - row <<
            "\nMax element: " << result << "\n\n";
    
    system("pause");
    return 0;
}


Добавлено через 2 часа 28 минут
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int main()
{
    srand(time(0));
    const int H = 8, W = 15; 
    int M[H][W], counter = 0, max, result, row = 0;
    cout << "Matrix[H][W]";   
    cout << "\n\n";
    
    //Находим строки с нулевыми элементами
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - rand() % 200;
            cout << setw(4) << M[i][j];
            if(M[i][j] == 0)
                counter++;
        }
        cout << "\n\n";
        if(counter > 0)
            row++;
        counter = 0;
    }
    
    //Сортируем массив
    for(int loop = 0; loop <= (H * W); loop++)
    {
        for(int i = 0; i < H; i++)
        {
            for(int j = 0; j < W - 1; j++)
            {
                if(M[i][j] < M[i][j + 1])
                {
                    int temp = M[i][j];
                    M[i][j] = M[i][j + 1];
                    M[i][j + 1] = temp;
                }
            }
        }
        for(int i = 0; i < W; i++)
        {
            for(int j = 0; j < H - 1; j++)
            {
                if(M[j][i] < M[j][i + 1])
                {
                    int temp = M[j][i];
                    M[j][i] = M[j][i + 1];
                    M[j][i + 1] = temp;
                }
            }
        }
    }
    
    result = M[H - 1][W - 1];
    
    //Находим максимальный повторяющийся элемент
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            max = M[i][j];
            for(int i = 0; i < H; i++)
            {
                for(int j = 0; j < W; j++)
                {
                    if(max == M[i][j])
                        counter++;
                }
            }
            if(counter > 1 && result < max)
                result = max;
            counter = 0;
        }
    }
    
    cout << "\nRows: " << H - row <<
            "\nMax element: " << result << "\n\n";
    
    system("pause");
    return 0;
}

Второй вариант правильный.
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
03.02.2014, 08:29     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #4
Iryna_Light, GuGo1991, Вариант в 57 строк:
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
#include<conio.h>
#include<iostream>
#include<iomanip>
#include<time.h>
#include<Windows.h>
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int a, b;
    cout << "Введите размеры матрицы: ";
    cin >> a >> b;
    int **M = new int*[a];
    for (int i(0); i < a; i++)
        M[i] = new int[b];
    for (int i(0); i < a; i++){
        for (int j(0); j < b; j++){
            M[i][j] = 99 - rand() % 198;
            cout << setw(5) << M[i][j];
        }
        cout << endl;
    }
    int Zero(0), Count(a), Max, MaxCount(0), Max2(0), C(0);
    
    for (int i(0); i < a; i++){
        for (int j(0); j < b; j++){
            if (M[i][j] == 0)
                Zero++;
            if (C == 0){
                Max = M[i][j];
                C++;
            }
            if (M[i][j] == Max)
                MaxCount++;
            if (MaxCount >= 2){
                Max2 = Max;
                MaxCount = 0;
            }
            if (M[i][j] > Max)
                Max = M[i][j];
        }
        if (Zero != 0){
            Zero = 0;
            Count--;
        }
    }
    cout << endl << "Количество строк, которые не содержат ни одного нулевого элемента: " << Count;
    if (Max2 == 0) cout << "Нет чисел, встречающихся более одного раза!";
    else cout << endl << "Максимальное из чисел, встречающихся в заданной матрице более одного раза: " << Max2;
    for (int i(0); i < a; i++)
        delete[] M[i];
    delete[] M;
    cout << "\n\nДля выхода нажмите любую клавишу...";
    _getch();
    return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
03.02.2014, 12:15     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #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
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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <iomanip>
#include <random>
#include <vector>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(-25, 25);
 
    size_t rowsCount;
    std::cout << "N: ";
    std::cin >> rowsCount;
 
    size_t colsCount;
    std::cout << "M: ";
    std::cin >> colsCount;
 
    size_t rowsWithoutZero = 0;
    std::vector <std::vector <int>> matrix(rowsCount, std::vector <int> (colsCount, 0));
    std::cout << "Matrix: " << std::endl;
    for (auto &currentMatrixRow : matrix) {
        for (auto &currentRowElement : currentMatrixRow) {
            std::cout << std::setw(5) << (currentRowElement = distribution(generator));
        }
        rowsWithoutZero += (!std::count(currentMatrixRow.begin(), currentMatrixRow.end(), 0));
        std::cout << std::endl;
    }
    std::cout << "Rows without zero elements: " << rowsWithoutZero << std::endl;
    
    bool isFind = false;
    int resultMaximal = 0;
    size_t currentRowIndex = 0;
    while (!isFind) {
        size_t currentMaximalCounter = 0;
        auto currentMaximal = std::max_element(matrix.at(currentRowIndex).begin(), matrix.at(currentRowIndex).end());
        for (size_t i = 0; i < rowsCount; i++) {
            currentMaximalCounter += std::count(matrix.at(i).begin(), matrix.at(i).end(), *currentMaximal);
        }
        if (currentMaximalCounter > 1) {
            isFind = true;
            resultMaximal = *currentMaximal;
        } else {
            if (matrix.at(currentRowIndex).size() != 0) {
                matrix.at(currentRowIndex).erase(currentMaximal);
            } else {
                currentRowIndex++;
            }
        }
    }
    std::cout << "Maximal, that repeat more than 1 time: " << resultMaximal << std::endl;
    
    std::system("pause");
    return 0;
}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
03.02.2014, 16:30     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #6
Xopecc, ваш код пропустит максимальный отрицательный элемент, если такой имеется.
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
03.02.2014, 17:01     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #7
GuGo1991, проверял достаточное кол-во раз, все правильно выводится
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
03.02.2014, 17:07     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #8
Xopecc, делать подобные "предположения", в принципе неправильно..
Цитата Сообщение от Xopecc Посмотреть сообщение
C++
1
Max(-200)
откуда эти -200? с головы?
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
03.02.2014, 17:10     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #9
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Xopecc, делать подобные "предположения", в принципе неправильно..

откуда эти -200? с головы?
-200 там не нужно; я в начале по другому принципу считал максимальное из чисел, встречающихся в заданной матрице более одного раза. Потом нашел более простой способ, а эти -200 забыл убрать, сейчас поправлю код в посте выше
ну, поправил если можешь убери -200 из поста с кодом
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
03.02.2014, 17:12     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #10
Цитата Сообщение от Xopecc Посмотреть сообщение
если можешь убери -200 из поста с кодом
отредактировал
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
03.02.2014, 17:18     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #11
GuGo1991, стоп, а зачем вообще нам нужен максимальный отрицательный элемент?
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
03.02.2014, 17:26     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #12
Xopecc, ну а вдруг положительных повторяющихся нет или же все элементы отрицательные и
имеется повторяющийся отрицательный
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
03.02.2014, 17:34     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #13
GuGo1991, Ах да, в ручную проверил, например, если есть матрица 2х2(-3;-2;-3;0), то он считал максимальным повторяющимся элементом -2; исправил, вот код(добавил сравнивание по модулю):
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
#include<conio.h>
#include<iostream>
#include<iomanip>
#include<time.h>
#include<Windows.h>
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    int a, b;
    cout << "Введите размеры матрицы: ";
    cin >> a >> b;
    int **M = new int*[a];
    for (int i(0); i < a; i++)
        M[i] = new int[b];
    for (int i(0); i < a; i++){
        for (int j(0); j < b; j++){
            M[i][j] = 99 - rand() % 198;
            cout << setw(5) << M[i][j];
        }
        cout << endl;
    }
    int Zero(0), Count(a), Max(0), MaxCount(0), Max2(0), C(0);
    
    for (int i(0); i < a; i++){
        for (int j(0); j < b; j++){
            if (M[i][j] == 0)
                Zero++;
            if (C == 0){
                Max = M[i][j];
                C++;
            }
            if (M[i][j] == Max)
                MaxCount++;
            if (MaxCount >= 2){
                Max2 = Max;
                MaxCount = 0;
            }
            if (abs(M[i][j]) > abs(Max))
                Max = M[i][j];
        }
        if (Zero != 0){
            Zero = 0;
            Count--;
        }
    }
    cout << endl << "Количество строк, которые не содержат ни одного нулевого элемента: " << Count << endl;
    if (Max2 == 0) cout << "Нет чисел, встречающихся более одного раза!";
    else cout << endl << "Максимальное из чисел, встречающихся в заданной матрице более одного раза: " << Max2;
    for (int i(0); i < a; i++)
        delete[] M[i];
    delete[] M;
    cout << "\n\nДля выхода нажмите любую клавишу...";
    _getch();
    return 0;
}
Iryna_Light
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 41
04.02.2014, 23:24  [ТС]     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #14
Xopecc, а можно подробнее строки30-43. спасибо

Добавлено через 5 минут
GuGo1991, а без сортировки никак? и это сортировка по убывающей?
немного не понимаю сортировки и нахождение макс. элемента
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.02.2014, 00:27     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #15
Iryna_Light, заодно заменил массив на динамический и добавил проверку.
Если что не ясно пишите.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int main()
{
    srand(time(0)); 
    int H, W, counter = 0, max, min, 
        min_counter = 0, result, row = 0;
    cout << "Matrix[H][W]\n";
    cout << "Enter H: "; cin >> H;
    cout << "Enter W: "; cin >> W;
    cout << "\n\n";
    int** M = new int*[H];
    for(int i = 0; i < H; i++)
        M[i] = new int[W];
    
    //Находим строки с нулевыми элементами
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - rand() % 200;
            cout << setw(4) << M[i][j];
            if(M[i][j] == 0)
                counter++;
        }
        cout << "\n\n";
        if(counter > 0)
            row++;
        counter = 0;
    }
    
    min = M[0][0];
    
    //Находим минимальный элемент
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            if(M[i][j] < min)
            {
                min = M[i][j];
            }
        }
    }
    
    //min_counter понадобится в дальнейшем
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            if(min == M[i][j])
                min_counter++;
        }
    }
    
    result = min;
    
    //Находим максимальный повторяющийся элемент
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            max = M[i][j];
            for(int i = 0; i < H; i++)
            {
                for(int j = 0; j < W; j++)
                {
                    if(max == M[i][j])
                        counter++;
                }
            }
            if(counter > 1 && result < max)
                result = max;
            counter = 0;
        }
    }
    
    cout << "\nRows: " << H - row;
    cout << "\nMax element: ";
    
    //Если значение result не изменилось и min_counter равен 1,
    //то есть значение min не повторяется, значит максимального
    //повторяющегося элемента нет. Иначе выводим result.
    (result == min && min_counter == 1)? cout << "No such element!\n"
                                       : cout << result << endl;
     
    for(int i = 0; i < H; i++)
    {
        delete [] M[i];
    }      
    
    delete [] M;
    
    system("pause");
    return 0;
}
Iryna_Light
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 41
05.02.2014, 22:56  [ТС]     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #16
GuGo1991,
а если в строке будет два нулевых элементы, то что будет тогда считаться две строки вместо одной?
и что-то не понимаю отыскания макс. элем.
причем например min_counter
любой элемент может быть больше за мин.элем.
и при выполнении вывело НЕ макс. а мин. элемент.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.02.2014, 23:33     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #17
Цитата Сообщение от Iryna_Light Посмотреть сообщение
а если в строке будет два нулевых элементы, то что будет тогда считаться две строки вместо одной?
Нет, одна.
Цитата Сообщение от Iryna_Light Посмотреть сообщение
и что-то не понимаю отыскания макс. элем.
Строки 62 - 79. Берём первый элемент матрицы (с индексами [0][0]). Проходим по всей матрице и проверяем
имеется ли такой же элемент. Один раз он точно будет, столкнется сам с собой, поэтому проверяем
значение counter больше 1 и сравниваем значение result с этим элементом (result всегда будет меньше или равно
потому что мы ему присвоили значение min до начала цикла, это необходимо чтобы не потерять повторяющиеся отрицательные элементы,
если нет положительных).
Цитата Сообщение от Iryna_Light Посмотреть сообщение
причем например min_counter
min_counter проверяет сколько минимальных элементов имеется. В случае если нет повторяющихся
максимальных элементов (положительных и отрицательных) и минимальный элемент один, тогда повторяющихся
элементов нет. А если минимальных элементов больше одного, программа выведет его.
Грубо говоря, это страховка.
Цитата Сообщение от Iryna_Light Посмотреть сообщение
и при выполнении вывело НЕ макс. а мин. элемент.
Скопируйте вывод программы, сомневаюсь в ошибке
Iryna_Light
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 41
09.02.2014, 20:27  [ТС]     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #18
GuGo1991, Максимальное из чисел, встречающихся в заданной матрице более одного раза, неправильно определено. Правильный ответ должен быть 100
Миниатюры
Определить количество строк матрицы, которые не содержат ни одного нулевого элемента  
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
09.02.2014, 21:35     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #19
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
int main()
{
    srand(time(0)); 
    int H, W, counter = 0, max, min, 
        min_counter = 0, result, row = 0;
    cout << "Matrix[H][W]\n";
    cout << "Enter H: "; cin >> H;
    cout << "Enter W: "; cin >> W;
    cout << "\n\n";
    int** M = new int*[H];
    for(int i = 0; i < H; i++)
        M[i] = new int[W];
    
    //Находим строки с нулевыми элементами
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = 100 - rand() % 200;
            cout << setw(4) << M[i][j];
            if(M[i][j] == 0)
                counter++;
        }
        cout << "\n\n";
        if(counter > 0)
            row++;
        counter = 0;
    }
    
    min = M[0][0];
    
    //Находим минимальный элемент
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            if(M[i][j] < min)
            {
                min = M[i][j];
            }
        }
    }
    
    //min_counter понадобится в дальнейшем
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            if(min == M[i][j])
                min_counter++;
        }
    }
    
    result = min;
    
    //Находим максимальный повторяющийся элемент
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            max = M[i][j];
            for(int i = 0; i < H; i++)
            {
                for(int j = 0; j < W; j++)
                {
                    if(max == M[i][j])
                        counter++;
                }
            }
            if(counter > 1 && result < max)
                result = max;
            counter = 0;
        }
    }
    
    cout << "\nRows: " << H - row;
    cout << "\nMax element: ";
    
    //Если значение result не изменилось и min_counter равен 1,
    //то есть значение min не повторяется, значит максимального
    //повторяющегося элемента нет. Иначе выводим result.
    (result == min && min_counter == 1)? cout << "No such element!\n"
                                       : cout << result << endl;
     
    for(int i = 0; i < H; i++)
    {
        delete [] M[i];
    }      
    
    delete [] M;
    
    system("pause");
    return 0;
}


Iryna_Light, точно этот код компилируете? У меня работает корректно, не знаю чем помочь...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 22:39     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Iryna_Light
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 41
09.02.2014, 22:39  [ТС]     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента #20
GuGo1991, так же он
Yandex
Объявления
09.02.2014, 22:39     Определить количество строк матрицы, которые не содержат ни одного нулевого элемента
Ответ Создать тему
Опции темы

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