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

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

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

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

19.05.2013, 20:10. Просмотров 852. Ответов 8
Метки нет (Все метки)

Дано массив целых чисел 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]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 20:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой (C++):

Дан массив из N целых чисел. Определить количество пар соседних элементов с одинаковым значением - C++
Есть рабочая программа для решения этой задачи. Опишите подробно каждое действие в ней (что?, как?, и зачем?). Заранее благодарю! ...

Отсортировать массив в порядке возрастания - C++
Помогите отсортировать массив в порядке возрастания. Input - 5 (кол-во элементов) 9 2 7 1 2 Output - 1 2 2 7 9

Нужно отсортировать массив в порядке возрастания - C++
помогите пожалуйста....не могу разобраться как отсортировать все значения которые мы вводим #include &lt;stdio.h&gt; /*#include &lt;iostream&gt;...

Отсортировать массив в порядке возрастания до первого максимального - C++
Здравствуйте. Нужно отсортировать массив в порядке возрастания элементов до первого максимального. #include &quot;stdafx.h&quot; #include...

массив (Отсортировать в порядке возрастания, распределить динамически память) - C++
срочно нужна ваша помощь(( 4. Дан массив из N элементов.Отсортировать в порядке возрастания. 5. Решить задачу 4, распределив...

Найти количество пар соседних элементов, одинаковых по абсолютному значению, но противоположных по знаку - 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;
0
vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
19.05.2013, 20:52  [ТС] #3
Сергей ничё не понял можна полностю задачу?
Если не трудно

Добавлено через 3 минуты
Тоисть то число которое повторяеться выводить на екран
+ надо заметить что массив вводиться с клавиатуры, по этому и меняэться
незнаю как решыть такую задачу((
0
Сергей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;}
}
 
}
Программа вручную заполняет два массива. Первый массив сортирует, затем сравнивает со вторым(не сортированным)
0
vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
20.05.2013, 22:07  [ТС] #5
Сергей большое спасибо, теперь попробую во всем этом розобраться
Если можна к каждой строке комментарий
Я просто только начинаю учить с++
0
vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
22.05.2013, 23:47  [ТС] #6
Не работает...

Добавлено через 24 минуты
Помогите ктото;(
0
Сергей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;}
}
 
}
0
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 массив(
0
vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
27.05.2013, 13:09  [ТС] #9
ВСе нормально, розобралься но как вывести сортировку на екран
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 13:09
Привет! Вот еще темы с ответами:

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

Найти пары соседних элементов последовательности, среднее арифметическое которых равно N и количество таких пар. - C++
Помогите пожалуйста!!!! задача на С++ Дана последовательность .Длина последовательности целых чисел – случайное число от 10 до 30 Указать...

Отсортировать массив по убыванию и найти количество и произведение элементов массива кратных 5 - C++
Помогите пожалуйста. Вот задание: Найти количество и произведение элементов массива кратных 5. Если таких элементов нет, то...

Упорядочить массив в порядке возрастания его элементов - C++
Вот условие задания: -ввести массив А6,сформулировать В6 по формуле:Вi=sinAi -упорядочить массив А в порядке возрастания его...


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

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

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