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

Двумерный массив, количество строк без нулевых элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Условные операторы, двумерные массивы http://www.cyberforum.ru/cpp-beginners/thread186867.html
Вот задачи, решение сделано на Паскале, переделать нужно на Си... 1. Даны произвольные числа а, b, c. Определить, может ли быть построен треугольник со сторонами соответствующей длины, и указать,...
C++ последовательная обработка символов В тексте первый символ каждого слова - цифра, указывающая длину этого слова. Проверить правильность указания длины слов. На экран вывести заданные длины слов и вычисленные. вот пограмма ток незнаю... http://www.cyberforum.ru/cpp-beginners/thread186858.html
C++ Сформировать две строки - первая содержит только числа из исходной строки, а вторая – только слова
1.Дан текст, состоящий из предложений. Ввод текста осуществляется в несколько строк (не более 20). Признак завершения ввода – ввод пустой строки. Предложения в тексте могут начинаться на одной...
C++ Засунуть в тернарный оператор
Помогите засунуть выражение if ( (i < 0 || j < 0) || (i >= ROW || j >= COL) || (i == oi && j == oj)) continue; else if (arr) ++cnt; в тернарный оператор, у меня что-то не выходит никак
C++ сортировка массива по двум критериям(или что-то вроде того) http://www.cyberforum.ru/cpp-beginners/thread186845.html
Дан массив int arr, нужно отсортировать первую строчку по возрастанию, если числа равны сравнивать соответственные значения во второй (гарантируется, что все числа во второй разные). И вся проблема...
C++ Создание массива по Указателю на массив (к сведенью. пользую C++, версия Dev C++ 4.9.9.2) Я создал указатель на массив: char (*e); Мне нужно создать по этому указателю массив с помощью new. Подскажите как это сделать. P.s. Знаю что... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9722 / 5673 / 972
Регистрация: 25.07.2009
Сообщений: 10,920
06.11.2010, 02:14
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
/*
Дана целочисленная прямоугольная матрица. определить:
1)кол-во строк , не содержащих нулевые элементы
2)максимальное из чисел, повторяющееся несколько раз
*/
 
#include <iostream>
#include <map>
#include <algorithm>
#include <iterator>
#include <functional>
#include <cstdlib>
 
int main(){
    const int rows(4);
    const int columns(5);
    int matrix[rows][columns] = {
        { 1, 4, 0, 3, 2 },
        { 5, 7, 7, 4, 9 },
        { 0, 1, 2, 6, 7 },
        { 3, 8, 5, 2, 6 }
    };
 
    int cntWOZero = 0;
    for ( int i = 0; i < rows; ++i )
        if ( ! std::count(matrix[i], matrix[i] + columns, 0) )
            ++cntWOZero;
 
    std::map<int, int, std::greater<int> > map;
    for ( int i = 0; i < rows; ++i )
        for ( int j = 0; j < columns; ++j )
            map[matrix[i][j]]++;
 
    std::cout << "Matrix:" << std::endl;
    for ( int i = 0; i < rows; ++i ){
        std::copy(matrix[i], matrix[i] + columns, std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    }
 
    std::cout << "Rows without zero elements: " << cntWOZero << std::endl;
 
    bool found = false;
    for ( std::map<int, int, std::greater<int> >::const_iterator i = map.begin(); i != map.end(); ++i ){
        if ( i->second > 1 ){
            found = true;
            std::cout << "Max not single value is " << i->first << ", meet " << i->second << " times." << std::endl;
            break;
        }
    }
 
    if ( ! found )
        std::cout << "Every value in matrix meet just once. Greatest is " << map.begin()->first << std::endl;
 
    std::cout << std::endl;
    system("pause");
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.