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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
artur12345
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 5
#1

Сформировать массив из элементов исходного массива, располагающихся по возрастанию - C++

06.12.2011, 23:09. Просмотров 710. Ответов 15
Метки нет (Все метки)

например из массива (3 2 4 5 1 3 7 3 4 9 2) должен получиться массив (3 4 5 7 9) т.е. из возрастающих элементов. не могу понять как делать=(

Добавлено через 10 минут
если можно то на языке начинающих))) за ранее спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать массив из элементов исходного массива, располагающихся по возрастанию (C++):

Сформировать массив А из четных элементов исходного массива, а массив В - из нечетных - C++
Элементы массива Т формируются по правилу: Т(к)=15к-12. Сформировать массив А из четных элементов массива Т, а массив В- из нечетных(к=20)

Сформировать массив неповторяющихся элементов исходного массива - C++
Сформировать массив из неповторяющихся элементов исходного массива. Например : Из массива A = {2,5,2,6,8,5,1,9,4,3 } нужно получить...

Сформировать массив из модулей суммы элементов исходного массива - C++
помогите написать на языке с++. Заранее СПАСИБО!

Сформировать новый массив из чётных значений элементов исходного массива - C++
Дан массивА(30). Сформировать новый массив из четных значений элементов массива A на языке С++

Сформировать массив из произведений элементов исходного массива кроме текущего элемента - C++
Произведение массива кроме самого себя Имеется массив in из n целых чисел. Постройте массив out такой, что outi равно произведению...

Сформировать массив каждый элемент которого это среднее арифметическое элементов исходного массива - C++
дан массив действительных чисел a размерности n (вводится с клавиатуры) сформировать массив b каждый элемент которого b - среднее...

15
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
06.12.2011, 23:12 #2
Вообще есть такая функция как qsort . Вбейте в гугл, почитайте.
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
06.12.2011, 23:18 #3
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
44
45
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
const int M = 10;
 
void swap(int &x, int &y)
{
   int buf = x;
   x = y;
   y = buf;
}
 
 
void bubbleSort(int *a)
{
   for (int i=0; i<M; i++)
  {
     for (int j=i+1; j<M; j++)
     {
        if (a[i] > a[j])
        {
           swap(a[i], a[j]);
        }
     }
  }
}
 
void input(int *a)
{
  for (int i=0; i<M; i++)
  {
     cin>>a[i];
  }
}
 
void output(int *a)
{
  for (int i=0; i<M; i++)
    cout<<a[i];
}
 
int main()
{
   int a[M];
   cout<<"Input data: \n";
   input(a);
   cout<<"\nSorting: \n";
   bubbleSort(a);
   cout<<"\nOutput data: \n";
   output(a);
   return 0;
}
Не проверял, тут пример самой простой пузырьковой сортировки) Код не проверял, писал сразу
1
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
06.12.2011, 23:54 #4
В предыдущем посте есть ошибка, в процедуре bubblesort нужно исправить:
C++
1
for (int i=0; i<M-1; i++)
(минус 1)
1
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
07.12.2011, 00:24 #5
Ancient Hero это ни на что не влияет, просто одна лишняя операция
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
07.12.2011, 04:56 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
 
int  user_func(int* arr, int size) {
  for(int i = 0; i < size - 1; i++) {
       if((arr[i + 1] - arr[i]) < 0) {
             for(int j = i + 1; j < size - 1; j++)
                 arr[j] = arr[j + 1];
             i--;
             --size;
       }
   }
   return size;
}
 
int main(void) {
   int arr[] = { 3, 2, 4, 5, 1, 3, 7, 3, 4, 9, 2 };
   int size  = sizeof(arr) / sizeof(arr[0]);
 
   size = user_func(arr, size);
 
   for(int i = 0; i < size; i++)
        std::cout << arr[i] << "  ";
  std::cout.put('\n');
  return 0;
}
1
alkagolik
Заблокирован
07.12.2011, 06:12 #7
Цитата Сообщение от Kidasov Посмотреть сообщение
Ancient Hero это ни на что не влияет, просто одна лишняя операция
имеется ввиду строка №16 вашего кода. В строке 17 у вас начальное значение j = i + 1. Случай i = M - 1 влечет (j = i + 1) == M, а это выход за пределы массива.
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
07.12.2011, 08:54 #8
Ancient Hero, alkagolik прошу меня извинить, Вы правы. Я жутко протупил
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.12.2011, 10:45 #9
Цитата Сообщение от AncinetHero Посмотреть сообщение
Вообще есть такая функция как qsort
Эта функция сортировки, а не создания нового массива
0
artur12345
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 5
07.12.2011, 23:58  [ТС] #10
не ра6отает
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
08.12.2011, 00:02 #11
Напишите, что именно не работает?
0
artur12345
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 5
08.12.2011, 00:12  [ТС] #12
прога Atoma ра6отает, но вопрос)) как сделать, что6 массив самому задавать

Добавлено через 1 минуту
Цитата Сообщение от Kidasov Посмотреть сообщение
Напишите, что именно не работает?
именно в окне вывода 6есконечно можно вводить массив- ничего не происходит
0
saserlend
11 / 11 / 1
Регистрация: 25.11.2011
Сообщений: 145
08.12.2011, 00:47 #13
Задай 1 элементу максимум пройди массив и каждый больший первого внеси в другой массив.
1
artur12345
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 5
08.12.2011, 01:34  [ТС] #14
Цитата Сообщение от saserlend Посмотреть сообщение
Задай 1 элементу максимум пройди массив и каждый больший первого внеси в другой массив.
я как 6ы понимаю что нужно сделать) на языке программирования о6ъясни
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
08.12.2011, 02:16 #15
Цитата Сообщение от xAtom Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
int main(void) {
int arr[] = { 3, 2, 4, 5, 1, 3, 7, 3, 4, 9, 2 };
int size = sizeof(arr) / sizeof(arr[0]);
size = user_func(arr, size);
for(int i = 0; i < size; i++)
      std::cout << arr[i] << " ";
std::cout.put('\n'); 
return 0;
}

Ну тут изменений совсем чуть-чуть

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{  
  int size = 10;
  int arr[size];
  for (int i = 0; i < size; i++) //вводишь массив с клавиатуры
          cin>>a[i];
  size = user_func(arr, size);
  for(int i = 0; i < size; i++)
          std::cout << arr[i] << " *";
  std::cout.put('\n');
  return 0;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 02:16
Привет! Вот еще темы с ответами:

Сформировать массив состоящий из четных и нечетных элементов помещеных в порядке следования исходного массива - C++
Создать массив с размерностью 200 элементов со значениями от 0 до 100. Требуется сформировать массив А в который помещены в порядке...

Из простых элементов исходного неупорядоченного массива, состоящего из натуральных чисел, сформировать новый упорядоченный массив. - C++
Ребята нужна помощь!!! Задача такая, нужно разработать программу в процедурном, классовом или модульном виде. 1.Из простых элементов...

Сформировать массив из нечетных элементов исходного - C++
Дано задание: Сформировать массив из нечетных элементов исходного.. Надо выполнить это задание для одномерного и двух мерного массива. Для...

Сформировать массив из элементов исходного по правилу - C++
Ребят задали задание &quot;Ввести одномерный массив из n элементов. В функции сформировать на его месте новый массив, в котором первым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
08.12.2011, 02:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru