Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ленчикО
0 / 0 / 0
Регистрация: 24.05.2013
Сообщений: 9
#1

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

24.05.2013, 02:00. Просмотров 1008. Ответов 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
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2013, 02:00
Ответы с готовыми решениями:

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

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

Добавить после каждого четного элемента массива элемент со значением M[ I+1 ]+2
Ребята помогите пожалуйста, вот условие данной задачи у меня сложности с 4...

После каждого четного элемента массива вставить число К
Нужна после каждого четного элемента вставить число К.Я идею понял,но нужно...

Динамические массивы: добавить после каждого четного элемента элемент со значением 0
помогите написать код, не шарю толком задачу, как можно целые числа заменить на...

2
Rifle
27 / 27 / 13
Регистрация: 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 / 22
Регистрация: 16.04.2013
Сообщений: 319
Записей в блоге: 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

После каждого четного элемента последовательности, кратного X, вставить новый элемент
У меня 2 вопроса:Вот условия задачи Даны две последовательности целых чисел. В...

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

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


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

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

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