Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2015, 22:53   #1
benzema241
 
Регистрация: 05.10.2015
Сообщений: 2
Печаль Прошу помочь с вызовом функции

Здравствуйте! Такая задача:Разработать и испытать функцию, которая удаляет из целочисленного одномерного массива все элементы, совпадающие по значению с его начальным элементом, и возвращает новый размер массива.
Программу написал, но мне нужно,чтобы проверку каждого элемента массива и его удаление делала функция. А в теле самой программы должно быть только ввод числа элементов и вызов функции. Проблема в том,что пробовал делать проверку каждого элемента в функции но ничего не получилось. Помогите пожалуйста! Вопрос может быть глупый, но не знаю, как сделать. Заранее спасибо!
Вот код:
Код:
#include <iostream>
 
using namespace std;
 
void delEl(int * &array, int &numOfElem, int iDel) //Функция удаления элементов.
{
    int j;
    for (int j = iDel + 1; j < numOfElem; j++)
    {
        array[j - 1] = array[j];
    }
    numOfElem--;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int numOfElem;
    cout << "Введите число элементов массива: "; //Введите число элементов.
    cin >> numOfElem;
    int * array = new int(numOfElem);
    for (int i = 0; i < numOfElem; i++)
    {
        cout << "Массив[" << i << "] = "; //Ввод каждого элемента массива.
        cin >> array[i];
    }
    for (int i = 1; i < numOfElem; i++) //Проверка каждого элемента в массиве
    {
        if (array[i] == array[0])       //Если i-ый элемент равен нулевому
        {
            delEl(array, numOfElem, i); //То удаляем этот элемент.
        }
    }
    cout << "Новое содержание массива из " << numOfElem << " элементов:" << endl; //Вывод нового массива.
    for (int i = 0; i < numOfElem; i++)
    {
        cout << " " << array[i] << endl;
    }
    system("pause");
    return 0;
}
benzema241 вне форума Ответить с цитированием
Старый 06.10.2015, 09:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну напиши еще функу:
Код:
void foreachme(int *a,int n){
    for (int i = 1; i < n; i++) //Проверка каждого элемента в массиве
    {
        if (array[i] == array[0])       //Если i-ый элемент равен нулевому
        {
            delEl(array, numOfElem, i); //То удаляем этот элемент.
        }
    }
}
И вызов из главной проги:
Код:
foreachme(array, numOfElem)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с вызовом функции Magnum4635 Общие вопросы C/C++ 2 26.10.2013 16:14
Проблема с вызовом функции Terikon JavaScript, Ajax 6 17.10.2013 19:11
Проблема с вызовом функции внутри Ajax archiolidius JavaScript, Ajax 0 12.12.2012 18:32
Алгоритмы. Не прошу решить. Прошу помочь! pascaluser Паскаль, Turbo Pascal, PascalABC.NET 2 12.10.2012 08:45
Проблема с вызовом функции B DLL doniyor Мультимедиа в Delphi 2 05.11.2009 16:14