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

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

Восстановить пароль Регистрация
 
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 32
14.08.2014, 15:27     Как в массиве найти отрицательные четные элементы #1
Массив дан целочисленный. Как так написать, чтобы выдавал четные элементы.


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

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];
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2014, 15:27     Как в массиве найти отрицательные четные элементы
Посмотрите здесь:

C++ С++ заменить в массиве отрицательные элементы их модулем
Заменить в массиве все отрицательные элементы на их модули C++
если в массиве положительные элементы или отрицательные элементы будут соседями C++
В одномерном массиве четные элементы разделить на 2, нечетные умножить на 3 C++
В массиве все четные элементы заменить максимальным C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
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] << " ";
}
RussBear
 Аватар для 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, в данном случае имелось ввиду немного другое.
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 32
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;
 
}
Fallenworld
75 / 75 / 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
arsLAN Mr_N11
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 32
14.08.2014, 16:20  [ТС]     Как в массиве найти отрицательные четные элементы #6
Можно код?
Fallenworld
75 / 75 / 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 ){
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2014, 10:28     Как в массиве найти отрицательные четные элементы
Еще ссылки по теме:

В двумерном массиве заменить все четные элементы на минимальный элемент матрицы C++
Отобрать в другой массив все четные отрицательные элементы C++
C++ Отсортируйте в массиве положительные элементы по возрастанию, отрицательные – по убыванию

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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);
}
Yandex
Объявления
15.08.2014, 10:28     Как в массиве найти отрицательные четные элементы
Ответ Создать тему
Опции темы

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