Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
YCTIME
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 36
1

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

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

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

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

Найти произведение и количество элементов массива, значения которых превосходят заданное число
Элементы массива вводить с клавиатуры. Размерность массива задать самостоятельно. Найти...

Найти количество элементов массива значения которых больше своих соседей
Одномерный массив задается с клавиатуры.Вывести на экран кол-во значений которые больше своих...

Найти количество элементов массива, значения которых положительны, и не больше заданного числа
6.Найти количество тех элементов, значения которых положительны и не больше заданного числа,...

Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает заданное число m
Люди добрые и мудрые. Как сделать сие чудо. Найти все натуральные числа из промежутка от k до l, у...

6
Croessmah
++Ͻ
15322 / 8697 / 1659
Регистрация: 27.09.2012
Сообщений: 21,440
Записей в блоге: 2
Завершенные тесты: 2
08.02.2014, 13:30 2
Цитата Сообщение от YCTIME Посмотреть сообщение
Max, Min, Std и т.д!!!
ну так сделайте без них...
0
d1skort
20 / 20 / 8
Регистрация: 10.02.2013
Сообщений: 75
08.02.2014, 14:14 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;
}
А, двумерный... Извиняюсь, не обратил внимания.
0
Димферон
3 / 3 / 2
Регистрация: 06.02.2014
Сообщений: 16
08.02.2014, 14:50 4
Лучший ответ Сообщение было отмечено YCTIME как решение

Решение

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;
}

Это самая простая реализация твоего задания, в данной реализации нет "защиты от дурака", так что если ввести некорректные данные будет тупить...
1
YCTIME
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 36
09.02.2014, 14:57  [ТС] 5
многовато что то)
0
Димферон
3 / 3 / 2
Регистрация: 06.02.2014
Сообщений: 16
09.02.2014, 15:50 6
YCTIME, а что ты хочешь программу в 2 строчки кода?
Тут все по минимуму и даже начинающий программист - кодер разберется... И самое главное все работает...
1
Ev[G]eN
iOS/Android Developer
Эксперт С++
5121 / 1559 / 951
Регистрация: 23.01.2011
Сообщений: 3,188
Завершенные тесты: 1
09.02.2014, 16:37 7
Лучший ответ Сообщение было отмечено YCTIME как решение

Решение

Цитата Сообщение от 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;
}
1
09.02.2014, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 16:37

Найти все натуральные числа из диапазона, у которых количество делителей превышает заданное число
задача: найти все натуральные числа из промежутка от а до b, у которых количество делителей...

Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое всех элементов массива
Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru