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

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

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

Упорядоченный массив - C++

06.03.2013, 07:56. Просмотров 311. Ответов 4
Метки нет (Все метки)

Помогите добить код!!!
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
53
54
55
56
57
58
59
60
61
#include <iostream.h>
 
 
 main ()
 {
     int *a;
     int n,i,j;
     int t; 
     int *b;
     cout << "Vvedi razmernost' massiva: " << endl;
     cin>>n; // ÏðèäГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГҐ Г°Г*çìåðГ*îñòè Г¬Г*Г±Г±ГЁГўГі
     a = new int[n]; // Ñòðîèì Г*îâûé ðÿä Г·ГЁГ±ГҐГ« èñõîäÿ ГЁГ§ Г·ГЁГ±Г«Г* n(ГўГ±ГҐ Г§Г*Г*Г·ГҐГ*ГЁГҐ öåëûå Г·ГЁГ±Г«Г*)
     cout << " Vvedi lubie cifru [max "<<n<<"]"<<endl;
     for(i=0;i<n;i++)
     {
         cin>>a[i]; // Г‡Г*Г¤Г*ГҐГІ Г§Г*Г*Г·ГҐГ*ГЁГї ïðîãðГ*ììå
     }
     for(i=0;i<n;i++)
         for(j=0;j<n;j++)
         {
             if (a[i]<a[j]) // ÑðГ*ГўГ*ГЁГўГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї ïåðâûõ Г·ГЁГ±ГҐГ« ГЁ âòîðûõ
             {
                 a[i]=a[i]+a[j];
                 a[j]=a[i]-a[j];
                 a[i]=a[i]-a[j];
             }
         }
         cout << "Vvedi razmernost' massiva: "<<endl;
         cin >> t;
         b = new int[t];
         cout << " Vvedi lubie cifru [max "<<t<<"]"<<endl;
         for(i=0;i<t;i++)
         {
         cin>>b[i]; // Г‡Г*Г¤Г*ГҐГІ Г§Г*Г*Г·ГҐГ*ГЁГї ïðîãðГ*ììå
         }
         for(i=0;i<t;i++)
         for(j=0;j<t;j++)
         {
             if (b[i]<b[j]) // ÑðГ*ГўГ*ГЁГўГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї ïåðâûõ Г·ГЁГ±ГҐГ« ГЁ âòîðûõ
             {
                 b[i]=b[i]+b[j];
                 b[j]=b[i]-b[j];
                 b[i]=b[i]-b[j];
             }
         }
         for(i=0;i<n;i++)
        
         {
             if(a[i]!=a[i+1]) cout<<a[i]<<" ";
         }
         delete []a;
 
         for (i=0;i<t;i++)
         {
             if(b[i]!=b[i+1])
                 cout<<b[i]<<" ";
         }
         delete []b;
                
         return 0;
 }
Смысл в том чтобы объеденить два неубывающих массива в один тоже не убывающий
Я первый массив упорядочил и второй тоже!
А как их загнать в один и его упорядочить немогу!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 07:56     Упорядоченный массив
Посмотрите здесь:

новый массив, упорядоченный по неубывнию C++
Упорядоченный массив C++
Дан упорядоченный по неубыванию массив A из N чисел и число X C++
Сортировка 2-х одномерных массивов в 1 упорядоченный массив по возрастанию C++
C++ Включить новый элемент в массив, упорядоченный по возрастанию, с сохранением упорядоченности. (рандомный массив)
C++ массив, упорядоченный по убыванию
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
C++ Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возрастанию
C++ Слияние массивов в упорядоченный массив
Разработать класс SortedArrayOfInt – упорядоченный массив целых чисел C++
C++ Упорядоченный по неубыванию массив превратить в упорядоченный по возрастанию, оставив уникальные элементы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
06.03.2013, 08:44     Упорядоченный массив #2
Ну а к примеру взять третий массив и в него скопировать по очереди значения первого и второго, а затем упорядочить. В общем виде:
C++
1
2
3
int *c = new int[n+t];
c = a + b;
sort(c);
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
07.03.2013, 09:22     Упорядоченный массив #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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream.h>
 
 
int main ()
{
     int *a, *b, *c;
     int n, i, j, t;
 
     cout << "Vvedi razmernost' massiva a: " << endl;
     cin >> n; // Придаем значение размерности массиву
     a = new int[n]; // Строим новый ряд чисел исходя из числа n(все значение целые числа)
     for(i=0;i<n;i++)
         {
         cout << " Vvedi a[" << i <<"]:";
         cin >> a[i]; // Задает значения программе (присваивает значение переменной)
         }
     cout << endl;
     for(i=0;i<n;i++)
         for(j=0;j<n;j++)
             if (a[i]<a[j]) // Сравниваем значения двух соседних значений
                 {
                 a[i]=a[i]+a[j]; // Если не правильно стоят - сортировка
                 a[j]=a[i]-a[j];
                 a[i]=a[i]-a[j];
                 }
     cout << "Vvedi razmernost' massiva b: "<<endl;
     cin >> t;
     b = new int[t];
     for(i=0;i<t;i++)
         {
         cout << " Vvedi b[" << i <<"]:";
         cin>>b[i]; // Задает значения программе
         }
     for(i=0;i<t;i++)
         for(j=0;j<t;j++)
             if (b[i]<b[j]) // Сравниваем значения первых чисел и вторых
                 {
                 b[i]=b[i]+b[j];
                 b[j]=b[i]-b[j];
                 b[i]=b[i]-b[j];
                 }
     for(i=0;i<n;i++)
         if(a[i]!=a[i+1])
             cout<<a[i]<<" ";
 
     for(i=0;i<t;i++)
         if(b[i]!=b[i+1])
             cout<<b[i]<<" ";
 
     c = new int[n+t]; // Суммирующий массив по размеру как два старых
 
     for(i=0;i<n;i++)
         c[i]=a[i];
     for(i=0;i<t;i++)
         c[n+i]=b[i];
     for(i=0;i<n+t;i++)          // Упорядочиваем c
         for(j=0;j<t;j++)
             if (c[i]<c[j])
                 {
                 c[i]=c[i]+c[j];
                 c[j]=c[i]-c[j];
                 c[i]=c[i]-c[j];
                 }
     cout << endl;
     for(i=0;i<n+t;i++)
       cout << c[i] << " ";
 
     delete []a;
     delete []b;
     delete []c;
 
     cin.ignore(2);
     return 0;
}
predell, только скажите одну вещь: зачем вы в строках 43 и 47 делаете
C++
1
if(a[i]!=a[i+1])
Нельзя же просто взять и выкинуть повторяющиеся элементы. Или это задание такое? И тогда может их надо удалить из массива насовсем, а не не выводить? Занулить там, я не знаю. Или что-нибудь еще страшное.
predell
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 16
10.03.2013, 00:45  [ТС]     Упорядоченный массив #4
SatanaXIII, как бы в этих строках условие на повторяемость чисел , те которые будут повторяться не выводить их...
Вот...
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
11.03.2013, 15:54     Упорядоченный массив #5
Так. Вот код,
  • выводит по очереди массив а, массив б и массив с.
  • Последний состоит из двух первых.
  • Во всех трех массивах при выводе не отображаются повторяющиеся элементы.
Так?
Код
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream.h>
 
 
int main ()
{
     int *a, *b, *c;
     int n, i, j, t;
 
     cout << "Vvedi razmernost' massiva a: " << endl;
     cin >> n; // Придаем значение размерности массиву
     a = new int[n]; // Строим новый ряд чисел исходя из числа n(все значение целые числа)
     for(i=0;i<n;i++)
         {
         cout << " Vvedi a[" << i <<"]:";
         cin >> a[i]; // Задает значения программе (присваивает значение переменной)
         }
     cout << endl;
     for(i=0;i<n;i++)
         for(j=0;j<n;j++)
             if (a[i]<a[j]) // Сравниваем значения двух соседних значений
                 {
                 a[i]=a[i]+a[j]; // Если не правильно стоят - сортировка
                 a[j]=a[i]-a[j];
                 a[i]=a[i]-a[j];
                 }
     cout << "Vvedi razmernost' massiva b: "<<endl;
     cin >> t;
     b = new int[t];
     for(i=0;i<t;i++)
         {
         cout << " Vvedi b[" << i <<"]:";
         cin>>b[i]; // Задает значения программе
         }
     for(i=0;i<t;i++)
         for(j=0;j<t;j++)
             if (b[i]<b[j]) // Сравниваем значения первых чисел и вторых
                 {
                 b[i]=b[i]+b[j];
                 b[j]=b[i]-b[j];
                 b[i]=b[i]-b[j];
                 }
     cout << "Massiv a: ";
     for(i=0;i<n;i++)
         if(a[i]!=a[i+1])
             cout<<a[i]<<" ";
 
     cout << endl << "Massiv b: ";
     for(i=0;i<t;i++)
         if(b[i]!=b[i+1])
             cout<<b[i]<<" ";
 
     c = new int[n+t]; // Суммирующий массив по размеру как два старых
 
     for(i=0;i<n;i++) // Копируем a
         c[i]=a[i];
     for(i=0;i<t;i++) // Докопируем b начиная с n
         c[n+i]=b[i];
     for(i=0;i<n+t;i++)          // Упорядочиваем c //
         for(j=0;j<t;j++)                           //
             if (c[i]<c[j])                         //
                 {                                  //
                 c[i]=c[i]+c[j];                    //
                 c[j]=c[i]-c[j];                    //
                 c[i]=c[i]-c[j];                    //
                 }               /////////////////////
 
     cout << endl << "Massiv c: ";
     for(i=0;i<n+t;i++)       //
       if(c[i]!=c[i+1])       // Выводим c без повторяющихся
         cout << c[i] << " "; //
 
     delete []a;
     delete []b;
     delete []c;
 
     cin.ignore(2);
     return 0;
}
Yandex
Объявления
11.03.2013, 15:54     Упорядоченный массив
Ответ Создать тему
Опции темы

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