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

динамические массивы ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ АТД - очередь с приоритетом http://www.cyberforum.ru/cpp-beginners/thread57777.html
Помогите, пожалуйста, реализовать в виде класса на С++ абстрактный тип данных очередь с приоритетом. Для реализации очереди нужно использовать частично упорядоченное дерево, представленное в виде кучи.
C++ Как использовать getline и fgets? #include <iostream> #include <fstream> #include <string> using std::ofstream; using std::cout; using std::endl; using std::string; using std::getline; http://www.cyberforum.ru/cpp-beginners/thread57775.html
C++ случайные числа
как заполнить массив случайными числами например от -50 до 50 void generate(int mas,int n){ for(int i=0;i<n;i++) mas=(rand()%50)-50; return; } пробывал так не выходит, подскажите
C++ Создать одномерный масив...
Создать одномерный масив у, елементы которого вычесляются по формуле y=f(k), где k=1,2,3,...,10, а f(k)=cos2(квадрат) sin(2k-1)+5,25. Вывести его елементы на экран в виде таблицы: номерэлемента, значение. З.Ы. Сори за ошибки, просто спешка, очень надо.
C++ Template Method Pattern http://www.cyberforum.ru/cpp-beginners/thread57757.html
Где можно об этом почитать на русском нормальный материал ? Template Method Pattern
C++ Задания с операторами Тут такая фишка оч нужна помощь 1а)Даны три различных числа. Среднее из них заменить суммой квадратов, большее ― квадратом суммы меньшего и среднего, меньшее оставить без изменения. 1б)Пересекаются ли отрезки и , где A,B,C,D –координаты отрезков . 2а)Даны три различных числа. Большее заменить разностью меньшего и среднего, среднее полусуммой большего и меньшего. Меньшее увеличить вдвое. ... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
21.10.2009, 10:56     динамические массивы ?
К примеру твой массив 2 - mass2, а массив 1 - mass1 , содержащий m элементов тогда алгоритм будет может выгляедеть следующим образом (пишу всё для динамики - число отр элементов заранее неизвестно)

Вариант 1
C++
1
2
3
4
5
6
7
8
9
10
int * mass2 = (int *)malloc(sizeof(int));
for(int i = 0,k = 0; i < m; i++)
{
if(mass1[i] < 0)
{
mass2[k] = mass1[i];
k++;
mass2 = (int *)realloc((void *)mass2,sizeof(int)*(k + 1));
}
}
Вариант 2
C++
1
2
3
4
5
6
7
8
9
10
int * mass2 = (int *)malloc(sizeof(int)*m);
for(int i = 0,k = 0; i < m; i++)
{
if(mass1[i] < 0)
{
mass2[k] = mass1[i];
k++;
}
}
mass2 = (int *)realloc((void *)mass2,sizeof(int)*(k + 1));
Вариант 3
C++
1
2
3
4
5
6
7
8
9
10
11
int * mass2 = (int *)malloc(sizeof(int)*m),k = 0;
do
{
if(*mass1 < 0)
{
*mass2 = *mass1;
mass2++;k++;
}
}
while(mass1++);
mass2 = (int *)realloc((void *)mass2,sizeof(int)*(k + 1));
В последнем варианте переменная k нужна лишь как счётчик отр элементов

Писал прям здесь в редакторе если будут огрехи пишите, забью в студии подправлю, но внешне ошибок не вижу...
 
Текущее время: 01:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru