Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 35

Найти элементы значения которых чётные и больше заданного

24.01.2017, 03:03. Показов 724. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив из 27 элементов.
Заполнить его случайными значениями в указанном пользователем диапазоне
Найти элементы, значения которых чётные и больше, чем 10.
Если таких нет - вывести сообщение.
Только повторяющиеся значения. Каждое повторяющееся значение записывать в результирующий массив один раз.

Как сделать повторяющиеся значения??????

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
#include<iostream>
#include<time.h>
using namespace std;
void main()
{
        srand(time(NULL));
    setlocale(LC_ALL, "russian");
    
const int size = 27;
    int array[size];
    for (size_t i = 0; i < size; i++)
    {
        array[i] = rand() % 30;
        cout << " array [" << i << "] = " << array[i] << "\n";
    }
    for (size_t i = 0; i < size; i++)
    {
        if (array[i] % 2 == 0 && array[i] > 10)
        {
            cout << " array [" << i << "] = " << array[i] << "\n";
        }
        else if (array[i] % 2 != 0 && array[i] < 10)
        {
            cout << " Значение нечетное и меньше 10-и = " << array[i] << "\n";
            cout    << " array [" << i << "] = " << array[i] << "\n";
        }
      }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2017, 03:03
Ответы с готовыми решениями:

Найти количество строк матрицы, все элементы которых больше заданного значения
Задача состоит в том, что для матрицы А(3х7) найти число строк, все элементы которых больше 1, а для матрицы В(4х5) найти число строк, все...

Найти количество строк массива , все элементы которых больше заданного значения z
Дан массив X(N,M). Найти количество строк массива , все элементы которых больше заданного значения z. Ребят, помогите, зачёт, а я ничё не...

Вывести те элементы массива, значения которых больше заданного числа А
Может кто-то знает как докончить этот код? Scilab a = b = k = 3 G = setdiff (a,b) disp(G)

4
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
24.01.2017, 10:52
Цитата Сообщение от the Viper Посмотреть сообщение
Только повторяющиеся значения. Каждое повторяющееся значение записывать в результирующий массив один раз.
Как сделать повторяющиеся значения??????
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
#include <iostream>
#include <iterator>
#include <random>
#include <algorithm>
#include <vector>
#include <functional>
 
int main ()
{
  const int SZ = 27;
 
  std::default_random_engine dre{std::random_device()()};
  std::uniform_int_distribution<size_t> distr(0, 20);
 
  std::vector<size_t> vec(SZ, 0);
  std::generate(vec.begin(), vec.end(), std::bind(distr, dre));
  std::copy(vec.cbegin(), vec.cend(), std::ostream_iterator<size_t>(std::cout, " "));
 
  std::vector<size_t> res;
  for (auto it = vec.cbegin(), itEnd = vec.cend(); it != itEnd; ++it)
    if (std::find(res.cbegin(), res.cend(), *it) == res.cend() &&
        std::find(it + 1, itEnd, *it) != itEnd)
      res.push_back(*it);
 
  if (res.empty())
    std::cout << "\nNo repeated elements\n";
  else
  {
    std::cout << "\nRepeated elements: ";
    std::copy(res.cbegin(), res.cend(), std::ostream_iterator<size_t>(std::cout, " "));
    std::cout << std::endl;
  }
 
 
  return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2017, 14:14
Для хранения и поиска повторяющихся значений лучше использовать std::unordered_set<int>

Также, можно отсортировать (std::sort) и использовать std::unique_copy

Добавлено через 9 минут
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
#include <iostream>
#include <random>
#include <unordered_set>
#include <vector>
 
int main()
{
    const size_t N = 27;
    std::array<int, N> A;
    size_t counter = 0;
    std::unordered_set<int> us;
    std::vector<int> res;
 
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution<> dist;
    std::cin >> dist;
 
    for (auto &x : A)
    {
        x = dist(gen);
        std::cout << x << " ";
        if (!(x & 1) && x > 10)
            counter++;
        if (us.find(x) != us.end())
            res.push_back(x);
        else
            us.insert(x);
    }
 
    std::cout << "\nCounter: " << counter << "\nDuplicated values: ";
    for (const auto &x : res)
        std::cout << x << " ";
}
Добавлено через 3 минуты
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <unordered_set>
#include <vector>
 
int main()
{
    const size_t N = 27;
    std::array<int, N> A;
    size_t counter = 0;
    std::vector<int> res;
 
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution<> dist;
    std::cin >> dist;
 
    for (auto &x : A)
    {
        x = dist(gen);
        std::cout << x << " ";
        if (!(x & 1) && x > 10)
            counter++;
    }
 
    std::sort(A.begin(), A.end());
    auto it = std::unique(A.begin(), A.end());
    std::unique_copy(it, A.end(), std::back_inserter(res));
 
    std::cout << "\nCounter: " << counter << "\nDuplicated values: ";
    for (const auto &x : res)
        std::cout << x << " ";
}
0
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
24.01.2017, 14:28
MrGluck, вторая ваша программа не будет корректно работать... std::unique не гарантирует сохранность повторяющихся элементов, то есть в элементах от it + 1 до A.end() будет каша

http://www.cplusplus.com/refer... hm/unique/
1
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2017, 14:45
The relative order of the elements not removed is preserved, while the elements between the returned iterator and last are left in a valid but unspecified state.
То есть там потенциально будет каша. Конкретно в данном случае, значения в хвосте скорее всего будут сохранены, однако полагаться на это не стоит. Согласен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.01.2017, 14:45
Помогаю со студенческими работами здесь

Найти элементы массива значения которых больше значения их индексов
Даны целые числа аi а2,..., а„. Вывести на печать только те числа, для которых ai&gt;i

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

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

Найти количество элементов массива, значения которых больше заданного числа B и при этом кратны 5
помогите решить...... Дан одномерный массив C целых чисел, состоящий из 10 элементов, заполнить его с кла-виатуры:найти количество...

Найти в массиве элементы, значение которых не превышают заданного значения
Составить схему алгоритма и программу определения количества и адресов элементов массива целых чисел К= {Kj}, j=1,m m-число элементов в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru