С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
1

Удалить из массива все четные элементы

18.01.2019, 21:53. Показов 3511. Ответов 6

Author24 — интернет-сервис помощи студентам
Объясните код, пожалуйста. Добавьте комментарии к коду.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include <ctime>
using namespace std;
int main()
{
    int i, a[1000], N, n;
    cin >> N;
    for (i = 0; i < N; i++)
        cin >> a[i];
        
    for (i = n = 0; i < N; i++) {
        if (a[i] & 1) {
            cout << (a[n++] = a[i]) << " ";
        }
    }
    if (n == 0)
        cout << "There are no elements" << endl;
    getchar();
    getchar();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2019, 21:53
Ответы с готовыми решениями:

Удалить все четные элементы из массива
суть задания удалить все четные элементы из массива, программа делает все правильно, только вот...

Удалить из массива все четные элементы
Как удалить из массива все четные элементы?

Удалить из массива все четные элементы
дан массив int a. удалить из массива все четные элементы

Из целочисленного массива Х все четные элементы записать в массив Y. Удалить в массивах максимальные элементы
Из целочисленного массива Х(N) все четные элементы записать в массив Y(k). Удалить в массивах...

6
308 / 271 / 220
Регистрация: 14.11.2016
Сообщений: 1,049
18.01.2019, 22:44 2
Лучший ответ Сообщение было отмечено Culfo как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include <ctime>
using namespace std;
int main()
{
    int i, a[1000], N, n; // a - массив на 1000 элементов
    cin >> N; // задаем размер массива в диапазоне [1, 1000]
    for (i = 0; i < N; i++) // заполняем массив
        cin >> a[i];
        
    for (i = n = 0; i < N; i++) {
        if (a[i] & 1) { // если элемент не четный
            cout << (a[n++] = a[i]) << " "; // на место четного записываем нечетный
        }
    }
    if (n == 0) // если n == 0
        cout << "There are no elements" << endl; // "Нет элементов" (либо массив пуст, либо все элементы четные)
    // в диапазоне [0, n) будет результирующий массив
    getchar();
    getchar();
    return 0;
}
1
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
21.01.2019, 18:01  [ТС] 3
anapshy, а почему именно при таком условии элементы нечетный? И как можно по-другому записать это условие?
C++ (Qt)
1
if (a[i] & 1) { // если элемент не четный
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
21.01.2019, 18:07 4
Culfo, используйте динамический массив
Цитата Сообщение от Culfo Посмотреть сообщение
как можно по-другому записать это условие?
C++
1
if (a[i]%2!=0)
или
C++
1
if (a[i]%2==1)
1
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
21.01.2019, 18:18  [ТС] 5
Yetty, спасибо)
0
308 / 271 / 220
Регистрация: 14.11.2016
Сообщений: 1,049
21.01.2019, 20:21 6
Цитата Сообщение от Culfo Посмотреть сообщение
anapshy, а почему именно при таком условии элементы нечетный? И как можно по-другому записать это условие?
C++
1
if (a[i] & 1) { // если элемент не четный
Если вы хоть немного знакомы с тем как выглядят числа в бинарном представлении и основами мат.логики, то должны понимать, что если например, имеется бинарное число: 100101, и если к нему применить операцию логического AND(И) с единицей (1), то получим единицу (1), т.к. 1 & 1 = 1.
Далее переведём полученный результат (единицу - 1) в десятичную систему счисления 2^0 = 1 <-- в результате получили не четное десятичное число. А как известно число отличное от нуля в С++ является ИСТИНОЙ, соответственно код в условии if будет выполнен.
0
4 / 2 / 2
Регистрация: 13.12.2018
Сообщений: 30
21.01.2019, 20:24  [ТС] 7
anapshy, спасибо, теперь ясно
0
21.01.2019, 20:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2019, 20:24
Помогаю со студенческими работами здесь

Удалить из одномерного массива все четные элементы без изменения порядка
Написать программу используя функции, но не использовать указатели 2. Удалить из одномерного...

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый массив переписать все четные
Помогите сделать данную программу: Удалить из массива целых чисел все нули. Сформировать два новых...

Удалить все четные элементы, кратные X
#include &lt;iostream&gt; using namespace std; int main() { int n; int min = 0; int _n_min = 0;...

Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные
Помогите, пожалуйста. &gt;&gt;&quot;Дан одномерный массив А, состоящий из N элементов. Сколько значений...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru