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

Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой - C++

Восстановить пароль Регистрация
 
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
19.05.2013, 20:10     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #1
Дано массив целых чисел 20, отсортировать его в порядке возрастания и найти количество соседних пар элементов отличающихся между собой

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{
int a[20],i,j,c;
for (i=0;i<20;i++)
           { cout<<"a["<<i<<"]=", cin>> a[i]<<endl;}
 
 
 
for (j=0; j<n; j++)
{ max=a[0];
for i=0;i<n-j;i++)
{
if (max<a[i])
max:= a[i];
}
C=max;
max=a[n-j-1]
a[n-j-1]=max;
Посмотрети пожалуйста этот код и помогите дописать задачу




Пример задачы:
Дано масив
3 5 1 5 7 7 8 0 1 1
Отсортировать( что я уже сделал если праильно)
0 1 1 1 3 5 5 7 7 8
Теперь найти количество(тоисть чтобы он брало масив a[0] и сравнивало с a[2]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 20:10     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой
Посмотрите здесь:

C++ Количество пар соседних элементов
отсортировать массив в порядке возрастания до первого максимального C++
C++ массив (Отсортировать в порядке возрастания, распределить динамически память)
Найти пары соседних элементов последовательности, среднее арифметическое которых равно N и количество таких пар. C++
Нужно отсортировать массив в порядке возрастания C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сергей24
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 7
19.05.2013, 20:30     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #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
    int const n=20;
    int B[n],j,p,nn;
 //заполняем и выводим массив до сортировки
       for(i=0;i<kol;i++)
               {
         M[i]=rand();
                 cout<<M[i]<<" ";
                                }
cout<<endl;printf("\n Отладочная печать по шагам сортировки");cout<<endl;
      for (int i=0; ; i++ )
 
          { 
              p = 0;
 
           for (j=k; j>i; j--)
 
                    if (B[j] >B[j-1])
 
                            { nn = B[j]; B[j] = B[j-1]; B[j-1] = nn; p=1;}
 
           /* Если перестановок не было, то сортировка выполнена */
 
                    if ( p == 0)
 
                            break;
 printf(" \ni = %d",i);
 
           for (j=0; j<n;j++)
 
                     printf("\t %d",B[j]);
 
          }
 
    }
Добавлено через 8 минут
кажысь понял, ну сделай так- объяви еще одиг массив и скопиру в него начальное состояние твоего первого массив,
потом отсортируй второй, и в цыкле сравнивай вот код:
C++
1
2
3
4
5
6
7
8
9
int k=0; int A[20];
for for(i=0;i<n;i++){                   
B[i]=A[i];//копируем
}
for for(i=0;i<n;i++)
{
if(B[i]==A[i]){k++;}//увеличиваем счетчик
}
cout<<"ravnih elementov:  "<<k;
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
19.05.2013, 20:52  [ТС]     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #3
Сергей ничё не понял можна полностю задачу?
Если не трудно

Добавлено через 3 минуты
Тоисть то число которое повторяеться выводить на екран
+ надо заметить что массив вводиться с клавиатуры, по этому и меняэться
незнаю как решыть такую задачу((
Сергей24
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 7
19.05.2013, 22:49     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #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
#include <iostream>
void main{
int const n=20;
int B[n],A[m],j,p,nn;
//заполняем и выводим 1-й массив до сортировки
cout<<"Zapolneniye 1-go massiva"<<endl;
for(i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>B[i];
cout<<B[i]<<" ";
}
cout<<"Zapolneniye 2-go massiva"<<endl;
for(i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>A[i];
cout<<A[i]<<" ";
}
cout<<endl;printf("\n Отладочная печать по шагам сортировки");cout<<endl;
for (int i=0; ; i++ )
 
{ 
p = 0;
 
for (j=k; j>i; j--)
 
if (B[j] >B[j-1])
 
{ nn = B[j]; B[j] = B[j-1]; B[j-1] = nn; p=1;}
 
/* Если перестановок не было, то сортировка выполнена */
 
if ( p == 0)
 
break;
printf(" \ni = %d",i);
 
for (j=0; j<n;j++)
 
printf("\t %d",B[j]);
 
}
//Сравниваем
for(i=0;i<n;i++)
{
if(M[i]==A[i]){cout<<"sovpal element "<<M[i]<<" na pozocii "<<i<<endl;}
}
 
}
Программа вручную заполняет два массива. Первый массив сортирует, затем сравнивает со вторым(не сортированным)
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
20.05.2013, 22:07  [ТС]     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #5
Сергей большое спасибо, теперь попробую во всем этом розобраться
Если можна к каждой строке комментарий
Я просто только начинаю учить с++
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
22.05.2013, 23:47  [ТС]     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #6
Не работает...

Добавлено через 24 минуты
Помогите ктото;(
Сергей24
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 7
23.05.2013, 20:10     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #7
Вот тебе рабочий код, я бы тебе книгу посоветовал почитать, прося готовые проги, ты врятли чему то научишься, по себе знаю

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
#include <iostream>
using namespace std;
void main()
{
int const n=20;
int B[n],A[n],j,p,nn,k;
//заполняем и выводим 1-й массив до сортировки
cout<<"Zapolneniye 1-go massiva"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>B[i];
cout<<B[i]<<" ";
}
system("cls");
cout<<"Zapolneniye 2-go massiva"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>A[i];
cout<<A[i]<<" ";
}
system("cls");
cout<<"Oba massiva zapolneni";
cout<<endl;printf("\n Отладочная печать по шагам сортировки");cout<<endl;
for (int i=0; ; i++ )
 
{ 
p = 0;
 
for (j=k; j>i; j--)
 
if (B[j] >B[j-1])
 
{ nn = B[j]; B[j] = B[j-1]; B[j-1] = nn; p=1;}
 
//Если перестановок не было, то сортировка выполнена 
 
if ( p == 0)
 
break;
printf(" \ni = %d",i);
 
for (j=0; j<n;j++)
 
printf("\t %d",B[j]);
 
}
//Сравниваем
for(int i=0;i<n;i++)
{
if(B[i]==A[i]){cout<<"sovpal element "<<B[i]<<" na pozocii "<<i<<endl;}
}
 
}
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
24.05.2013, 01:02  [ТС]     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #8
Цитата Сообщение от Сергей24 Посмотреть сообщение
Вот тебе рабочий код, я бы тебе книгу посоветовал почитать, прося готовые проги, ты врятли чему то научишься, по себе знаю

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
#include <iostream>
using namespace std;
void main()
{
int const n=20;
int B[n],A[n],j,p,nn,k;
//заполняем и выводим 1-й массив до сортировки
cout<<"Zapolneniye 1-go massiva"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>B[i];
cout<<B[i]<<" ";
}
system("cls");
cout<<"Zapolneniye 2-go massiva"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Vvedite "<<i<<" -iy element massiva"<<endl;
cin>>A[i];
cout<<A[i]<<" ";
}
system("cls");
cout<<"Oba massiva zapolneni";
cout<<endl;printf("\n Отладочная печать по шагам сортировки");cout<<endl;
for (int i=0; ; i++ )
 
{ 
p = 0;
 
for (j=k; j>i; j--)
 
if (B[j] >B[j-1])
 
{ nn = B[j]; B[j] = B[j-1]; B[j-1] = nn; p=1;}
 
//Если перестановок не было, то сортировка выполнена 
 
if ( p == 0)
 
break;
printf(" \ni = %d",i);
 
for (j=0; j<n;j++)
 
printf("\t %d",B[j]);
 
}
//Сравниваем
for(int i=0;i<n;i++)
{
if(B[i]==A[i]){cout<<"sovpal element "<<B[i]<<" na pozocii "<<i<<endl;}
}
 
}
Не работает сравнивание, выдает ошыбку
Мне надо вводить только 1 массив(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 13:09     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой
Еще ссылки по теме:

Дан массив из N целых чисел. Определить кол-во пар соседних элементов с одинаковым значением C++
C++ Найти количество пар соседних элементов, одинаковых по абсолютному значению, но противоположных по знаку
C++ В массиве найти количество пар соседних элементов в которых предыдущий элемент кратен следующему

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

Или воспользуйтесь поиском по форуму:
vasil596
 Аватар для vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
27.05.2013, 13:09  [ТС]     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой #9
ВСе нормально, розобралься но как вывести сортировку на екран
Yandex
Объявления
27.05.2013, 13:09     Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой
Ответ Создать тему
Опции темы

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