[H-L-L.ru]

Форма входа

Меню сайта

Categories
Основы работы в среде C++ Builder.Основы языка Си++ [7]
Операторы ветвления и операторы передачи управления [7]
Операторы цикла и операторы передачи управления [15]
Одномерные массивы [15]
Многомерные массивы [7]
Указатели.Динамическое распределение памяти [15]
Функции [4]
Строки [3]
Функция Main [15]
Типы данных,определяемые пользователем [1]
Потоки ввода/вывода [0]
Объектно-ориентированное программирование [0]
Справочные материалы [2]

Главная » Статьи » Решение задач на C++ к лекциям » Указатели.Динамическое распределение памяти

Задача №15
С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее:
Сжать массив, удалив из него одинаковые элементы.
Освободившиеся в конце массива элементы заполнить нулями.

int n, i, j=0, x=100000;
cout<<"Vvedite kolichestvo elementov\n";
cin>>n;
float *massiv=new float [n];
if(!massiv)
{
cout<<"Nedostatochno pamyati\n";
cout<<"Najmite klavishu dlya zaversheniya programmi\n";
getch();
return 0;
}
cout<<"Vvedite massiv iz"<<' '<<n<<' '<<"elemetov\n";
for(i=0; i<n; i++)
cin>>*(massiv+i);
for(int i=0; i<n; i++)
cout<<*(massiv+i)<<' ';

float *massiv2=new float [n];
if(!massiv2)
{
cout<<"Nedostatochno pamyati\n";
cout<<"Najmite klavishu dlya zaversheniya programmi\n";
getch();
return 0;
}
A:
random(x);
for(i=0; i<n; i++)
if(massiv[i]==x)goto A;

for(i=0; i<n; i++)
{
 for(j=i+1; j<=n; j++)
  {
   if(massiv[i]==massiv[j])
   massiv[i]=x;
  }
}
j=0;
for(i=0; i<n; i++)
if(massiv[i]!=x)
{
massiv2[j]=massiv[i];
j++;
}

for(i=j; i<n; i++)
massiv2[i]=0;


for(int j=0; j<n; j++)
cout<<'\n'<<massiv2[j]<<' ';

delete [] massiv;
delete [] massiv2;



Источник: Сжать массив

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Полная версия сайта