Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
beim
0 / 0 / 1
Регистрация: 30.10.2013
Сообщений: 1
03.11.2013, 01:05 0

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

03.11.2013, 01:05. Просмотров 848. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено Svrap как решение

Решение

Приветствую

Допустим, так

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
#include <iostream> // Заголовочный файл библиотеки стандартного потока ввода-вывода
 
// Вынесем ввод чисел с проверкой в отдельную функцию,
// где вторая переменная - нужно ли проверять на неположительность
// по умолчанию - не проверять
void GetNumber(int &Var, bool OnlyPositive = false)
{
    do  
    {
        std::cin.clear();
        std::cin.sync();
        std::cin >> Var;
        if((Var <= 0 && OnlyPositive) || std::cin.fail())  // Если не удовлетворяет условиям
            std::cout << "Invalid number" << std::endl;
        else  // Если удовлетворяет, то выход из цикла счтывания переменной
            break;
    }
    while(true);
}
 
void main()
{
    int ArrayLength = 0,     // Размерность массива
        *Array,              // Входной массив
        MaxValue = INT_MIN,  // Максимальное значение массива
        MaxValuePos;         // Позиция максимального значения в массиве
 
    std::cout << "Type array length" << std::endl;
    GetNumber(ArrayLength, true);
    
    // Выделение памяти под массивы
    Array = new int[ArrayLength];
 
    // Ввод исходного массива
    std::cout << "Type array numbers" << std::endl;
    for(int i = 0; i < ArrayLength; i++)
        GetNumber(Array[i]);
 
    // Поиск максимального числа
    for(int i = 0; i < ArrayLength; i++)
        // Тут неопределённость: что, если максимальных не одно?
        // В данном примере за максимальное будет принято последнее
        if(MaxValue <= Array[i])
        {
            MaxValue = Array[i];
            MaxValuePos = i;
        }
 
    // Вывод выходного массива
    std::cout << std::endl << "Output array: ";
    for(int i = 0; i < ArrayLength; i++)
        // Проверка условия задачи
        if((Array[i] % 2) || i <= MaxValuePos)
            std::cout << Array[i] << " ";
 
    // Освобождение памяти
    delete[] Array;
 
    // Удерживание результата на экране
    while(true) ;
}


Вернуться к обсуждению:
Из массива удалить четные элементы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 01:05

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

Из однонаправленного списка удалить четные элементы
Создать линейный однонаправленный список из вещественных чисел. Удалить из...

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

0
Другие темы раздела
C++ Ряд Тейлора: Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread995880.html
Здравствуйте! Всю жизнь программировал на Паскале и вдруг си++...помогите пожалуйста с заданием, желательно с объяснением, ибо чайник полный.. Написать программу на языке C++ в среде Microsoft...
C++ Массив по возрастанию Написать программу, которая сортирует массив по возрастанию различными методами: пузырьковый, подсчёта и быстрая (шелла). Массив заполнить случ. числами. Вывести время выполнения алгоритма для каждой... http://www.cyberforum.ru/cpp-beginners/thread995876.html
Востановление состояния программы после завершения C++
Здорова господа!!! Пишу прогу которая работает можно сказать в фоновом режиме (непрерывно) и от нужно например при непредвиденных ситуациях таких как завис комп либо выключили свет или там...
C++ Указатели на функции
Доброго всем времени суток.Помогите разобраться с указателями на функции.Вот мой код #include <iostream> #include <stdlib.h> #include <Windows.h> using namespace std; //Прототипы функций bool...
C++ Вычислить арксинус угла в градусах http://www.cyberforum.ru/cpp-beginners/thread995865.html
x = asin(sin(y * (pi / 180))) * (180 / pi); Краткое описание: х - искомый результат (арксинус в градусах), у - угол в градусах. В качестве параметра функции asin нужно передать синус угла в...
C++ GCC returning reference to temporary Например вот так: int func2() { int input; cin >> input; return input; } int&& func1() { подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru