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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
YCTIME
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 36
#1

Найти количество положительных элементов массива, значения которых не превосходят заданное число N. - C++

08.02.2014, 13:27. Просмотров 450. Ответов 6
Метки нет (Все метки)

Составьте программу на С++. Дан двумерный массив целых чисел. Найти количество положительных элементов массива, значения которых не превосходят заданное число N.
P.S. прошлый пример оказался неправильным! (Найти количество положительных элементов массива, значения которых не превосходят заданное число N) (по мнению учительницы слишком много ненужных всяких Max, Min, Std и т.д!!!)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 13:27     Найти количество положительных элементов массива, значения которых не превосходят заданное число N.
Посмотрите здесь:

C++ Создать функцию, которая возвращает количество элементов массива, меньших чем число, заданное пользователем. Массив целочисленный, передается функции
Найти количество элементов матрицы, значения которых не превышают по абсолютной величине Х C++
Проверить, превосходят ли элементы строк матрицы заданное число C++
Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает заданное число m C++
C++ Найти количество положительных элементов массива, значения которых не превосходят заданное число N
C++ Найти сумму положительных элементов массива и количество этих элементов
C++ Найти количество элементов массива, значения которых положительны, и не больше заданного числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12507 / 7069 / 794
Регистрация: 27.09.2012
Сообщений: 17,454
Записей в блоге: 2
Завершенные тесты: 1
08.02.2014, 13:30     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #2
Цитата Сообщение от YCTIME Посмотреть сообщение
Max, Min, Std и т.д!!!
ну так сделайте без них...
d1skort
20 / 20 / 0
Регистрация: 10.02.2013
Сообщений: 75
08.02.2014, 14:14     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> v{1, 2, -1, -2, 4, 6, -2};
    const int n = 3;
    int c = std::count_if(v.begin(), v.end(), [](int i){
            if (i > 0 and i < n)
                return true;
            else return false;});
    std::cout << c;
    return 0;
}
А, двумерный... Извиняюсь, не обратил внимания.
Димферон
 Аватар для Димферон
3 / 3 / 2
Регистрация: 06.02.2014
Сообщений: 14
08.02.2014, 14:50     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
YCTIME, посмотри.
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <Windows.h>
#include <time.h>
#include <math.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand(time(0)); // случайное число зависит от такта (машинного времени)
    SetConsoleCP(1251);//Русский язык для ввода
    SetConsoleOutputCP(1251);//Русский язык для ввывода
    int n = 0, m = 0;
    cout<<"Введите размер массива."<<endl;
    cout<<"[n][] - ";cin>>n;
    cout<<"[][m] - ";cin>>m;
    int** array_1 = new int*[n];
    for (int i = 0; i < m; i++)
    {
        array_1[i] = new int[m];
    }
    bool flag = 0;
    cout<<"Хотите заполнить массив в ручную? (да - 1, нет - 0) ";
    cin>>flag;
    if (true)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout<<"Элемент массива ["<<i+1<<"]["<<j+1<<"] = ";
                cin>>array_1[i][j];
            }
        }
    }
    else
    {
        cout<<"Заполнение массива"<<endl;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                array_1[i][j] = rand()%20; // %20 - максивально по модулю число
                cout<<"Элемент массива ["<<i+1<<"]["<<j+1<<"] = "<<array_1[i][j]<<endl;
            }
        }
    }
    int N = 0;
    cout<<"Введите N = ";cin>>N;
    int Summ_4usel = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (array_1[i][j] >= 0 && array_1[i][j] < N)
            {
                Summ_4usel++;
            }
        }
    }
    cout<<"Количество чилес входящих в отрезок от 0 до N (включая 0) = "<<Summ_4usel<<endl;
    system("pause");
    return 0;
}

Это самая простая реализация твоего задания, в данной реализации нет "защиты от дурака", так что если ввести некорректные данные будет тупить...
YCTIME
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 36
09.02.2014, 14:57  [ТС]     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #5
многовато что то)
Димферон
 Аватар для Димферон
3 / 3 / 2
Регистрация: 06.02.2014
Сообщений: 14
09.02.2014, 15:50     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #6
YCTIME, а что ты хочешь программу в 2 строчки кода?
Тут все по минимуму и даже начинающий программист - кодер разберется... И самое главное все работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 16:37     Найти количество положительных элементов массива, значения которых не превосходят заданное число N.
Еще ссылки по теме:

C++ Найти все натуральные числа из диапазона, у которых количество делителей превышает заданное число
Функция вычисляющая количество элементов массива отличающихся от максимального не более чем на заданное число C++
C++ В исходном массиве найти заданное количество наибольших элементов, из которых составить итоговый массив
C++ Определить количество элементов массива значения которых больше заданного числа
C++ Найти сумму элементов четных номеров массива вещественных чисел, превышающих заданное число

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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
09.02.2014, 16:37     Найти количество положительных элементов массива, значения которых не превосходят заданное число N. #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от YCTIME Посмотреть сообщение
многовато что то)
на 26 строчек меньше, если это так важно
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
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
#include <vector>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(-10, 10);
 
    size_t matrixSize;
    std::cout << "Size: ";
    std::cin >> matrixSize;
 
    std::vector <std::vector <int>> matrix(matrixSize, std::vector <int> (matrixSize));
    std::cout << "Matrix: " << std::endl;
    for (auto &currentRow : matrix) {
        for (auto &currentElement : currentRow) {
            std::cout << std::setw(5) << (currentElement = distribution(generator));
        }
        std::cout << std::endl;
    }
 
    int userNumber;
    std::cout << "N: ";
    std::cin >> userNumber;
 
    size_t counter = 0;
    for (auto currentRow : matrix) {
        counter += std::count_if(currentRow.begin(), currentRow.end(), [userNumber](int currentElement) -> bool {
            return (currentElement > 0) && (currentElement <= userNumber);
        });
    }
    std::cout << "Counter: " << counter << std::endl;
 
    std::system("pause >> temp");
    return 0;
}
Yandex
Объявления
09.02.2014, 16:37     Найти количество положительных элементов массива, значения которых не превосходят заданное число N.
Ответ Создать тему
Опции темы

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