Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
vasil596
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 26
1

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

19.05.2013, 20:10. Просмотров 1162. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 20:10
Ответы с готовыми решениями:

Задан одномерный массив. Отсортировать массив в порядке убывания и возрастания элементов
Задан одномерный массив. Отсортировать массив в порядке убывания и возрастания элементов. Напишите...

Количество пар соседних элементов, отличающихся друг от друга по абсолютному значению не более чем на 5
Добрый вечер! Прошу помочь в написании программы(подсказки, напутствия, все что угодно) : С...

Даны натуральное число n и целые числа a1, a2, ., . an. Найти количество пар "соседних" чисел, равных между собой
Даны натуральное число n и целые числа a1, a2, ..., . an. Найти количество пар &quot;соседних&quot; чисел,...

Одномерный массив из 10 элементов отсортировать в порядке возрастания
Одномерный массив из 10 элементов отсортировать в порядке возрастания. Метод сортировки любой....

8
Сергей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
27.05.2013, 13:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 13:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти количество пар элементов, которые стоят рядом и равны между собой
Такая тема надо решить задачу помогит пожалуйста. &quot;Найти количество пар елементов, которые стоят...

одномерный массив посчитать количество пар соседних элементов одного знака
19. Для одномерного массива посчитать количество пар соседних элементов одного знака

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

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


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

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

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