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

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

Войти
Регистрация
Восстановить пароль
 
ленчикО
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 9
#1

После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию - C++

24.05.2013, 02:00. Просмотров 895. Ответов 2
Метки нет (Все метки)

Ребят, помогите с задачкой новичку.
После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию.(нужно еще выбор сортировки аргументировать для моей ргр). Другими словами, нужно четные элементы массива вывести 3 раза подряд в новом массиве, а нечетные оставить так же.

например
исх массив 1 2 0 12 14
пол массив 2 2 2 12 12 12 14 14 14
отсор мас 14 14 14 12 12 12 2 2 2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 02:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию (C++):

После каждого четного элемента массива вставить 2 элемента с тем же значением, полученный массив отсортировать - C++
после каждого четного элемента массива вставить 2 элемента с тем же значением.полученный масив отсортировать.очень хотелось бы с...

Добавить после каждого четного элемента массива элемент со значением M - C++
Прошу помочь с решением задачи. 1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2)Распечатать...

После каждого четного элемента массива вставить число К - C++
Нужна после каждого четного элемента вставить число К.Я идею понял,но нужно учесть вариант что К тоже может быть четным иначе цикл может...

Добавить после первого четного элемента массива элемент с заданным значением - C++
Мне задали лабораторную работу, как всегда на самостоятельное изучение! Первый и второй пункт я сделала! Проблема с 3и4 пунктом. Хотелось...

Вставить в список число 66 после каждого элемента с отрицательным значением - C++
Создать линейный двунаправленный список из целых чисел. Вставить в список число 66 после каждого элемента с отрицательным значением.

Вставить в однонаправленном списке число 1.5 после каждого элемента с отрицательным значением - C++
создать линейный однонаправленный список из вещественных чисел. вставить в список число 1.5 после каждого элемента с отрицательным...

2
Rifle
26 / 26 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
24.05.2013, 09:16 #2
Вот, вроде все выполнено:

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
#include <iostream>
using std::cout;
using std::endl;
#include <ctime>
 
const int size = 10; //размер исходного массива
int main()
    {
    srand(time(0)); //засеиваем новые случайные числа
    int arr[size]; //исходный массив
    for (int i=0; i<size; i++)
        arr[i] = rand()%100; //заполняем массив случайными числами от 0 до 99
    int count = 0; //счетчик четных элементов
    for (int i=0; i<size; i++)
        if ((arr[i]%2) == 0 && arr[i] != 0) //если элемент четный
            count++; //прибавляем счетчик
     //динамически создаем новый массив размером (счетчик четных элементов умножить на 3)
    int* result = new int[count*3];
    int result_i = 0; //индекс нового массива
    for (int i = 0; i<size; i++)
        {
        if ((arr[i]%2) == 0 && arr[i] != 0) //если элемент четный
            for (int j=0; j<3; j++)
                result[result_i++] = arr[i]; //три раза вставляем четный элемент
        }
    //сортируем массив
    for (int i=0; i<count*3; i++)
        {
        for (int j=i+1; j<count*3; j++)
            {
            if (result[i] < result[j]) //если следующий элемент больше чем предыдущий
                {
                //меняем их местами
                int temp = result[i];
                result[i] = result[j];
                result[j] = temp;
                }
            }
        }
    //ответы, выводим два массива
    cout << "First: ";
    for (int i=0; i<size; i++)
        cout << arr[i] << " ";
    cout << endl;
    cout << "Second: ";
    for (int i=0; i<count*3; i++)
        cout << result[i] << " ";
    cout << endl;
    }
0
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
24.05.2013, 09:21 #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
#include <iostream>
using namespace std;
void print_arr(int*,int);
int main()
{
 setlocale(LC_ALL,"RUSSIAN");
 const int N=5;
 int k=0,n=0;
 int arr1[N]={2,5,12,7,5};//исходный
 print_arr(arr1,N);
 for(int i=0;i<N;i++)
 {
 if(!(arr1[i]%2))k+=2;
 }
 k+=N;
 int *arr2=new int[k];
  for(int i=0;i<N;i++)
  {
     if(!(arr1[i]%2))
     {
        arr2[n]=arr1[i];
        arr2[n+1]=arr1[i];
        arr2[n+2]=arr1[i];
        n+=3;
     }
     else
     {
        arr2[n]=arr1[i];
        n++;
     }
  }
  print_arr(arr2,k);
  for(int i=0;i<k-1;i++)
      for(int i=0;i<k-1;i++)
          if(arr2[i]<arr2[i+1])
          {
            int temp=arr2[i+1];
            arr2[i+1]=arr2[i];
            arr2[i]=temp;
          }
  print_arr(arr2,k);
 system("pause");
 return 0;
}
void print_arr(int *array1,int N)
{
    cout << "Array["<<N<<"]: ";
    for(int i=0;i<N;i++)
    cout<<array1[i]<<" ";
    cout << endl;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 09:21
Привет! Вот еще темы с ответами:

Вставить элемент в массив со значением 0 после элемента с номером N - C++
Массив А из 10 элементов заполнен случайными числами от 2 до 7. Вставить элемент со значением 0 после элемента с номером N. Вывести на...

Вставить два элемента после мах элемента и перед ним - C++
Составить программу решения задачи на С++, использовать процедуры введения и вывода массивов, выделить в задаче вспомогательные алгоритмы и...

Вставить после каждого нулевого элемента массива элемент, стоящий посередине - C++
Добрый вечер форму. Я у вас тут новенький,и это моя первая тема:) Не знаю куда обратиться поэтому пришел сюда:) Вот собственно...

В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В после его наименьшего элемента - C++
1. Даны два массива А(n) и B(m) целых чисел. В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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