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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Условные операторы, двумерные массивы http://www.cyberforum.ru/cpp-beginners/thread186867.html
Вот задачи, решение сделано на Паскале, переделать нужно на Си... 1. Даны произвольные числа а, b, c. Определить, может ли быть построен треугольник со сторонами соответствующей длины, и указать, что это будет за треугольник (равносторонний, равнобедренный, какой-либо ли другой). program treugolnik; uses crt; {Подключаем модуль, содержащий функцию очистки экрана} var a, b, c : real; ...
C++ последовательная обработка символов В тексте первый символ каждого слова - цифра, указывающая длину этого слова. Проверить правильность указания длины слов. На экран вывести заданные длины слов и вычисленные. вот пограмма ток незнаю как дописать помогите! #include <stdio.h> #include <math.h> void main() { char c,c1; int l,m; c=c1=’ ‘; m=0; http://www.cyberforum.ru/cpp-beginners/thread186858.html
C++ Сформировать две строки - первая содержит только числа из исходной строки, а вторая – только слова
1.Дан текст, состоящий из предложений. Ввод текста осуществляется в несколько строк (не более 20). Признак завершения ввода – ввод пустой строки. Предложения в тексте могут начинаться на одной строке, а заканчиваться на другой (максимальная длина предложения – 70 символов). Записать текст так, чтобы каждое предложение начиналось с новой строки. Упорядочить предложения по их длине и вывести...
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, нужно отсортировать первую строчку по возрастанию, если числа равны сравнивать соответственные значения во второй (гарантируется, что все числа во второй разные). И вся проблема в том, что n=100000, а отсортировать нужно меньше чем за 0.5 сек. Конечно, написал с быстрой сортировкой, но по второй срочке не всегда сортируется. Покажу, что есть, там ошибка в if-е, где...
C++ Создание массива по Указателю на массив (к сведенью. пользую C++, версия Dev C++ 4.9.9.2) Я создал указатель на массив: char (*e); Мне нужно создать по этому указателю массив с помощью new. Подскажите как это сделать. P.s. Знаю что имя массива это указатель на него, и что это изврат. Но этого требует лабораторная. Огромное спасибо за помощь. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
 
Текущее время: 13:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru