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

Функции добавления, удаления данных в массиве. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наибольший общий делитель двух целых чисел http://www.cyberforum.ru/cpp-beginners/thread102760.html
Написать программу, которая вычисляет наибольший общий делитель двух целых чисел. Пример: Вводите после стрелки числа. -> 45 -> 15 Наибольший общий делитель чисел 45 и 15 равен 15
C++ Минимальное число в последовательности Написать программу, которая определяет минимальное число во введенной с клавиатуры последовательности чисел (длина последовательности не ограничена). Пример: Вводите после стрелки числа. Для завершения ввода введите ноль. -> 45 -> 23 -> 15 http://www.cyberforum.ru/cpp-beginners/thread102759.html
указатели,вроде ошибка в книге C++
снова ошибка в книге снова разочаровние...=\ вот код #include <windows.h> #include<iostream> using namespace std; int main(){ int myage=5; int *page=0; cout<<"myage:"<<myage<<endl; page=&myage;// разве тут не присваивается адрес?????
Проверка ввода C++
Как ограничить ввод символов в программе!!!! На каждый символ, который был введен выдавать сообщение о неправильном вводе????? Надо чтоб можна было ввести только цифры???
C++ Подскажите IDE http://www.cyberforum.ru/cpp-beginners/thread102729.html
Я компилирую программы в Turbo C (C++ тож поддерживает), но при попытке запустить их на других IDE (codeblocks, dev c++) ругается на некоторые строки, которые турбо си съедает нормально (тот же clrscr(); или void main()). Не подскажете, какая IDE ближе всего по духу Turbo C (ну чтобы не переучиваться =_=) и в какой есть нормальный дебаггер. Буду очень благодарен. Ах да - стиль - тоже вещица...
C++ Найти минимальный среди элементов, лежащих выше главной диагонали Ввести матрицу размером NxM. Память для массива выделить динамически. Найти минимальный среди элементов, лежащих выше главной диагонали. подробнее

Показать сообщение отдельно
Ivaneo
2 / 2 / 0
Регистрация: 01.08.2009
Сообщений: 16
10.03.2010, 06:22     Функции добавления, удаления данных в массиве.
Данные функции возможно реализовать только с динамическим массивом.
Я так понял под типом Array подразумевается тип *double, тогда следующие функции без всяких проверок выглядят так:
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
void Print(double *arr, unsigned int SizeOfArr)
{
    for (unsigned int i=0; i<SizeOfArr; i++)
        cout << arr[i] << endl;
}
// Добавляет элемент в конец массива
double* Add(double *arr, unsigned int &SizeOfArr, double Value)
{
    SizeOfArr++;
    double *tmp = new double [SizeOfArr];
    for (unsigned int i=0; i<SizeOfArr-1; tmp[i]=arr[i++]);
    tmp[SizeOfArr-1]=Value;
    delete [] arr;
    return tmp;
}
double* Del(double *arr, unsigned int &SizeOfArr, unsigned int Index)
{
    SizeOfArr--;
    double *tmp = new double [SizeOfArr];
    for (unsigned int i=0, j=0; i<SizeOfArr+1; i++)
        i!=Index?tmp[j++]=arr[i]:true;
    delete [] arr;
    return tmp;
}
Использование данных функций выглядит так
C++
1
2
3
4
// arr - указатель на дин. массив, size - размер массива
arr=Add(arr,size,значение_нового_елемента);
arr=Del(arr,size,номер_удаляемого_елемента);
Print(arr,size);
Вообще незачем так извращаться когда есть готовый класс Vector
 
Текущее время: 06:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru