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

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

Войти
Регистрация
Восстановить пароль
 
asbdsh
0 / 0 / 1
Регистрация: 09.11.2013
Сообщений: 34
#1

Функция удаления последнего четного элемента - C++

21.11.2013, 00:07. Просмотров 536. Ответов 2
Метки нет (Все метки)

Помогите, нужно составить функцию удаления из состава массива последний четный элемент.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция удаления последнего четного элемента (C++):

Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне [c,d] и расположенных до первого четного элемента. - C++
помогите с задачкой Найти номер последнего максимального элемента среди элементов, лежащих в диапазоне и расположенных до...

Поправить функцию удаления последнего элемента односвязного списка - C++
#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std; struct elem { int data; elem...

функция в си++ для удаления элемента - C++
Есть ли функция в си++ для удаления элемента,например из текста?) Запрещено создавать темы с бессмысленными названиями вроде...

Функция удаления элемента односвязного списка - C++
#include "stdafx.h" #include <iostream> using namespace std; struct A { int key; };

Не работает функция удаления элемента из списка - C++
Двунаправленный линейный список, состоящий из: имени автора, названия книги, года издания и названия издательства. #include "stdafx.h"...

Освобождение памяти (функция удаления элемента Очереди) - C++
Здравствуйте, Есть класс двусвязного списка и производный от него класс Очередь. Почти всё работает правильно, кроме функции Удаления...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
21.11.2013, 00:29 #2
asbdsh, както так
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
#include <iostream>
#include <time.h>
using namespace std;
int* del(int*,int&);
int main() {
    srand(time(NULL));
    int size=5;
    int* arr=new int[size];
    for (int i=0;i<size;i++) 
        cout<<(arr[i]=rand()%10)<<" ";
    cout<<endl;
    int* temp;
    temp=del(arr,size);
    for (int i=0;i<size;i++) 
        cout<<temp[i]<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
int* del(int* arr,int& size) {
    int* temp;
    for (int i=size-1;i>=0;i--)
        if (arr[i]%2==0) {
            for (int j=i;j<size-1;j++)
                arr[j]=arr[j+1];
            temp=new int[size-1]; size--;
            for (int i=0;i<size;i++)
                temp[i]=arr[i];
            return temp;
        }
    return arr;
}
0
e810nsky
0 / 0 / 0
Регистрация: 20.11.2013
Сообщений: 6
21.11.2013, 01:03 #3
Ну, если еще нужно. Тут реализация с vector. Есть проверка на отсутствие в массиве четных чисел.
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
#include <iostream>
#include <vector>
 
using namespace std;
 
//Прототип функции поиска, передается ссылка на вектор.
void fDeleteEven(vector <int> &vec);
 
 
int main()
{
    //Массив нужен для инициализации вектора(вектор представляет собой аналог массива,но со встроенными функциями с которыми удобнее работать, например arr1.size() возвращает размер массива. arr1 в данном случае это вектор.
    int arr[] = {2,17,21,42,59,30,51,47};
    //Узнаем размер массива arr
    int arrSize=sizeof(arr)/sizeof(arr[0]);
    //Создаем вектор arr1, инициализируем значениями массива.
    vector <int> arr1 (arr,arr+arrSize);
    //Размер массива и вывод значений
    cout<<"Size: "<<arr1.size()<<endl;
    for (int i=0;i<arr1.size();i++)
        cout<<arr1[i]<<" ";
    cout<<endl;
    //Передаем вектор функции
    fDeleteEven(arr1);
    //Вывод новых значений
    cout<<endl<<"Size: "<<arr1.size()<<endl;
    for (int i=0;i<arr1.size();i++)
        cout<<arr1[i]<<" ";
    cout<<endl;
 
    cin.get();
    return 0;
}
//реализация функции поиска
void fDeleteEven(vector <int> &vec)
{
    //Переменная хранящая номер четного числа.
    int even=-1;
    //Поиск последнего четного элемента
    for (int i=vec.size()-1;i>=0;i--)
    {
        if(vec[i]%2==0)
        {
            even=i;
            break;
        }
    }
    //Если найден четный элемент смещаем массив, изменяем его размер.
    if (even!=-1)
    {
        for (int i=even;i<vec.size()-1;i++)
            vec[i]=vec[i+1];
        vec.resize(vec.size()-1);
        cout<<endl<<"Deleted element: "<<even+1;
    }
    //Если четный элемент не найден, выводим соотв сообщение.
    else 
        cout<<"No even numbers in array.";
 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 01:03
Привет! Вот еще темы с ответами:

Функция удаления элемента из дерева, ошибка в коде - C++
Добрый вечер, уважаемые программисты! :) Помогите, пожалуйста, понять где здесь ошибка. static bool h = false; // узел...

Функция для удаления выоборочного элемента из очереди - C++
Я удаляю выборочный элемент, вывожу элементы очереди на экран выводятся элементы, которые стояли до удаленного элемента, потом выводится...

Функция для удаления элемента в двумерном динамическом массиве. В чем ошибка? - C++
функция для удаления элемента в двум дин массиве (пока только часть в которой указывается какой надо удалить элемент). пишет IntelliSense:...

Функция возвращающая номер последнего элемента массива совпадающего с заданным числом - C++
Написать и протестировать функцию, возвращающую номер самого последнего элемента из массива, который совпадает с заданным с клавиатуры...


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

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

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