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

Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Rita
Сообщений: n/a
27.03.2008, 20:39     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #1
Задача : нужно уплотнить массив отбросив из него элементы меньшие 3 по модулю и упорядочить по убыванию.? Плиииииииз код на C++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2008, 20:39     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию
Посмотрите здесь:

Visual C++ Дана последовательность, расположить ее ненулевые элементы по убыванию.
Visual C++ Сформировать одномерный массив. Удалить из него строку и столбец с заданным номером
Visual C++ Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы числом 0.
Visual C++ Найти все меньшие 100 натуральные числа, которые при возведении в квадрат дают палиндром
Visual C++ Верно ли,что все элементы массива B входят в массив A
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SVEN
 Аватар для SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
29.03.2008, 16:32     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #2
Цитата Сообщение от Rita Посмотреть сообщение
Задача : нужно уплотнить массив отбросив из него элементы меньшие 3 по модулю и упорядочить по убыванию.? Плиииииииз код на C++.
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
#include<iostream>
using namespace std; 
void main() 
{ 
constint size=12; 
int ar[size]={24,-15,10,-16,-22,28,1,2,66,778,987,5444};
int count =0;
for (int i=0;i<size;i++) 
{ 
if (ar[i]>3) 
count++;
} 
int *mass;
mass=newint[count];
int j=0;
for (int i=0;i<size;i++) 
{ 
if (ar[i]>3)
{
mass[j]=ar[i];
j++;
}
}
int temp;
for (int i=0;i<count;i++) 
{ 
for (int j=0;j<count;j++) 
{
if (mass[i]>mass[j])
{
temp=mass[i];
mass[i]=mass[j];
mass[j]=temp;
}
}
}
for (int i=0;i<count;i++) 
{ 
cout << mass[i] << " ";
}
cin.get();
delete [] mass;
}
Конечно немного длиновато, но если посмотришь может чё упростишь!
Rita
Сообщений: n/a
29.03.2008, 18:09     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #3
Спс!
Но хотелось бы знать можго ли решить эту задачку без дополнительной памяти, ну скажем с помощью операторов типа delete. Тема открыта, пишите!
SVEN
 Аватар для SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
29.03.2008, 18:41     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #4
Цитата Сообщение от Rita Посмотреть сообщение
Спс!
Но хотелось бы знать можго ли решить эту задачку без дополнительной памяти, ну скажем с помощью операторов типа delete. Тема открыта, пишите!
Не знаю, я не вижу варианта без динам. выделения памяти. Ты ж второй массив формируешь на основе отброса элементов из первого и если зафиксировать его размеры то это будет не экономично и на мой взгляд некрасиво. А почему тебя не устраивает динамич выделение памяти?
Rita
Сообщений: n/a
30.03.2008, 21:22     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #5
Цитата Сообщение от SVEN Посмотреть сообщение
Не знаю, я не вижу варианта без динам. выделения памяти. Ты ж второй массив формируешь на основе отброса элементов из первого и если зафиксировать его размеры то это будет не экономично и на мой взгляд некрасиво. А почему тебя не устраивает динамич выделение памяти?
Меня устраивает, но любую задачку можно решить 1000 способами или больше даже (личное мнение), вот и решила не ограничиваться одним способом решения
C#++
1 / 1 / 0
Регистрация: 30.04.2008
Сообщений: 11
30.04.2008, 20:27     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию #6
std::remove_if повыбрасывает такие элементы без создания доп. массива (с уплотнением, разумеется, и за линейное время)
std::sort - отсортирует
Итого 2 строчки кода
Yandex
Объявления
30.04.2008, 20:27     Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию
Ответ Создать тему
Опции темы

Текущее время: 14:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru