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

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

Войти
Регистрация
Восстановить пароль
 
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 35
#1

Как в массиве найти отрицательные четные элементы - C++

14.08.2014, 15:27. Просмотров 415. Ответов 7
Метки нет (Все метки)

Массив дан целочисленный. Как так написать, чтобы выдавал четные элементы.


Здесь он находит нечетные.

C++
1
2
3
4
5
int C[n], count = 0;
    for (int i = 0; i < n; i++){
    if ((B[i]%2)<0){
    C[count++] = B[i];
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2014, 15:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как в массиве найти отрицательные четные элементы (C++):

Найти в массиве числа, большие заданного, и отрицательные элементы - C++
Задание:У массиве с m чисел найти количество елементов, величина которых больше заданого числа p; вывести негативные елементы.

Найти левый и правый крайние отрицательные элементы в массиве из 20 элементов - C++
Помогите решить проблему. Есть задание &quot;Создать целочисленный массив из 20 элементов.Заполнить его числами в диапазоне от -13 до 13. ...

С помощью ассемблерной вставки найти отрицательные элементы в массиве, и среднее положительных элементов - C++
Создать массив X. Определить среднее арифметическое положительных чисел, из отрицательных создать массив Y. При этом максимальное и...

Отобрать в другой массив все четные отрицательные элементы - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main () {int j; const int n = 10; int A, B; for...

если в массиве положительные элементы или отрицательные элементы будут соседями - C++
очень нужна помощь! помогите пожалуйста! если в массиве a положительные элементы или отрицательные элементы будут соседями то вывести их на...

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию - C++
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за спаданням.

7
rikimaru2013
C++ Game Dev
2438 / 1132 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
14.08.2014, 15:41 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
 
using namespace std;
void main()
{
    srand(time(0));
    int arr[10];
    for(int i=0;i<10;i++)
        arr[i] = i;
 
    for(int i=0;i<10;i += 2)
        cout << arr[i] << " ";
}
0
RussBear
1 / 1 / 1
Регистрация: 06.08.2014
Сообщений: 77
14.08.2014, 16:00 #3
Цитата Сообщение от arsLAN Mr_N11 Посмотреть сообщение
if ((B[i]%2)<0){
* * C[count++] = B[i];
* * * * }
C++
1
2
3
if (!(B[i]%2)<0){
* * C[count++] = B[i];
}
Здесь оператор % определяет остаток от деления на указанное число. В данном случае если остаток отделения на 2 равен нулю - число четное, следовательно достаточно поставить отрицание предыдущего условия

Добавлено через 3 минуты
rikimaru2013, в данном случае имелось ввиду немного другое.
0
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 35
14.08.2014, 16:06  [ТС] #4
Цитата Сообщение от RussBear Посмотреть сообщение
(!(B[i]%2)<0)
Сделал также как написали ничего не выводит

Вот весь код программы

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
#include <iostream>
#include <clocale>
#include <conio.h>
#include <ctime>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "Russian");
    srand(time_t(NULL) | clock());
    const int n = 20;
    int B[n];   
    for (int i = 0; i < n; i++){
        B[i] = -25 + rand() % 116;
    }
    cout << "Получен массив B" << endl;
    for (int i = 0; i < n; i++){
        cout << B[i]<<"  ";
    }
 
    int C[n], count = 0;
    for (int i = 0; i < n; i++){
        if ((B[i] % 2) < 0){
            C[count++] = B[i];
        }
 
    }
    cout << endl << "Получен массив из отрицательных четных элементов" << endl;
    cout << "Массив С" << endl;
    for (int i = 0; i < count; i++){
        cout << C[i] <<"  ";
    }
 
 
    _getch();
    return 0;
 
}
0
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
14.08.2014, 16:16 #5
Цитата Сообщение от arsLAN Mr_N11 Посмотреть сообщение
Сделал также как написали ничего не выводит
таки потому что отрицание дает неправильный ответ. Остаток деления четного числа на 2 будет всегда 0, независимо от знака.
Кстати, в массиве B[i] = -25 + rand() % 116; может не быть отрицательных чисел!
условие поиска:
A<0&&A%2==0
0
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 35
14.08.2014, 16:20  [ТС] #6
Можно код?
0
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
14.08.2014, 17:11 #7
C++
1
if ((B[i] % 2) < 0){
поменять на
C++
1
if ( B[i]< 0 && B[i]%2 ){
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
15.08.2014, 10:28 #8
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
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
#include <iterator>
 
int main()
{
   const int count = 20, min = -100, max = 100;
   auto gen = std::mt19937(std::random_device()());
   auto distr = std::uniform_int_distribution<int>(min, max);
   auto v_print = [](const std::vector<int>& v) -> void
   {
      std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
      std::cout << std::endl;
   };
   std::vector<int> vec;
   std::generate_n(std::back_inserter(vec), count, [&]() { return distr(gen); });
   v_print(vec);
   vec.erase(std::remove_if(vec.begin(), vec.end(), [](int value) -> bool
   {
      return value >= 0 || ((value % 2) != 0);
   }), vec.end());
   v_print(vec);
}
0
15.08.2014, 10:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2014, 10:28
Привет! Вот еще темы с ответами:

В массиве все четные элементы заменить максимальным - C++
В одномерном массиве все четные элементы заменить максимальным и отсортировать элементы массива по возрастанию.

Переставить местами четные и нечетные элементы в массиве - C++
Здравствуйте уважаемые форумчани!Прошу с задачей мне помочь,нужно переставить местами четные и нечетные элементы в массиве.Например:(до) ...

Как записать отрицательные элементы в массив Y, а из положительных найти среднее арифметическое - C++
Как записать отрицательные элементы в массив Y, а из положительных найти среднее арифметическое #include &quot;stdafx.h&quot; #include...

В одномерном массиве четные элементы разделить на 2, нечетные умножить на 3 - C++
Люди помогите пожалуйста, не знаю как сделать программу. В одномерном массиве четные элементы разделить на 2,нечетные умножить на 3.


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

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

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