Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/89: Рейтинг темы: голосов - 89, средняя оценка - 4.96
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
1

Сортировка методом пузырька(по убыванию)

31.03.2011, 17:31. Просмотров 16296. Ответов 15
Метки нет (Все метки)

Здравствуйте!Задача такая: Написать функцию, которая сортирует одномерный массив в порядке убывания методом пузырька. В основной программе вызвать эту функцию для двух разных массивов.
Вот мой код, но ничего не работает....((( прошу помочь исправить...заранее спасибо...
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int i,n,a,j[100];
main()
{
printf("vvedite kol-vo elementov: ");
scanf("%d",&n);
randomize();
for (i=0;i<n;i++)
{
a[n]=rand()%100-50;
printf("%5d",a[n]);
}
int a[100],j;
for(i=0; i<n; i++)
for (j=n-1; j>i; j--)
if(a[j-1]<a[j])
{
a[n]=a[j-1];
a[j-1]=a[j];
a[j]=a[n];
printf("otsortirovannyi massiv: %5d",a[j];}
getch();
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2011, 17:31
Ответы с готовыми решениями:

Сортировка методом пузырька(по убыванию) C++
Помогите,пожалуйста, нужно этот код сделать по убыванию. #include &lt;iostream&gt; #include...

Сортировка методом пузырька по убыванию
Что нужно изменить чтобы упорядочило по убыванию #include&quot;stdafx.h&quot; #include &lt;cstdlib&gt;...

Сортировка списка методом пузырька по убыванию
С сортировкой массивов вроде разобрался.. А вот со списками не выходит, может кто-нибудь помочь? ...

Отсортировать массив по убыванию методом пузырька
Вот то что у меня получилось #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; using...

Отсортировать массив по убыванию методом "пузырька
Написать программу обработки одномерного динамического массива целых случайных чисел в диапазоне...

15
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:35 2
Почитайте про область видимости переменных.
Приведённый код не просто не работает, но и не компилируется. Я бы номера строк сказал, но тэги форматирования не удосужились использовать...
0
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:41  [ТС] 3
Я бы не просил помочь, если бы знал что где исправить...
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:45 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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int i,n,a,j[100];
main()
{
printf("vvedite kol-vo elementov: ");
scanf("%d",&n);
randomize();
for (i=0;i<n;i++)
{
a[n]=rand()%100-50;
printf("%5d",a[n]);
}
int a[100],j;
for(i=0; i<n; i++)
for (j=n-1; j>i; j--)
if(a[j-1]<a[j])
{
a[n]=a[j-1];
a[j-1]=a[j];
a[j]=a[n];
printf("otsortirovannyi massiv: %5d",a[j];}
getch();
return 0;
}
Добавлено через 13 секунд
Строка 12 откуда взялась?

Добавлено через 1 минуту
ДА и функции сортировки тут нет, только main.
0
31.03.2011, 17:45
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:47  [ТС] 5
ну строка 12 a[n]=rand()%100-50; это я задаю случайный массив
а вот насчет функции , в этом проблема, не знаю как работать с помощью функций..
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:48 6
А ещё, у меня такое ощущение, что это не пузырьковая сортировка.)
В пузырьковой соседние элементы сравниваются/переставляются.

Добавлено через 39 секунд
Цитата Сообщение от Dark0809 Посмотреть сообщение
это я задаю случайный массив
Нет. Это не так.
Почитай про область видимости переменных.
0
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:53  [ТС] 7
Цитата Сообщение от Deviaphan Посмотреть сообщение
А ещё, у меня такое ощущение, что это не пузырьковая сортировка.)
В пузырьковой соседние элементы сравниваются/переставляются.
Поэтому я обратился сюда, чтобы показали как правильно будет -_-
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:55 8
В пузырьковой сравнивают соседние элементы. http://ru.wikipedia.org/wiki/%D0%A1%...BA%D0%BE%D0%BC
0
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:01  [ТС] 9
да,да я много читал инфы в интернете, после прочтения получился такой код, вы говорите что он неверен, поэтому я прошу написать как будет правильно..
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 18:02 10
Приведённый псеводкод один к одному заменяется на операторы С++. Только скобочки расставить.
И вапще...
0
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:05  [ТС] 11
С этим может быть разберусь, а вот как все это с помощью функции сделать я не знаю.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 18:07 12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Sort( int * array, int size )
{
    // Код сортировки
}
 
void main()
{
     const int size = ...;
     int array[size];
     ...
     Sort(array, size);
      ....
}
0
raskumar4ik
2 / 2 / 1
Регистрация: 31.03.2011
Сообщений: 18
31.03.2011, 18:07 13
можно так

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#include <stdlib.h>
 
 
int main()
{
 int mas[100],tmp,n,j=1;
 cout<<"input kol-vo elem: ";
 cin>>n;
 randomize();
 for (int i=0;i<n;i++)
   mas[i]=rand() %100-50;
 cout<<"\nbefor: ";
 for (int i=0;i<n;i++)
   cout<<mas[i]<<" ";
 while (j!=0)
 {
  for (int i=0;i<n-1;i++)
  {
   if (mas[i]<mas[i+1])
   {
    tmp=mas[i];
    mas[i]=mas[i+1];
    mas[i+1]=tmp;
    tmp=0;
    j++;
   }
   else j=0;
  }
 }
 cout<<"\nafter: ";
  for (int i=0;i<n;i++)
   cout<<mas[i]<<" ";
 getch();
}
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1307 / 1222 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 18:10 14
Цитата Сообщение от raskumar4ik Посмотреть сообщение
можно так
Низя.) По заданию надо в функцию вынести и два массива сортировать.
1
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:11  [ТС] 15
Ладно, спасибо всем, пойду разбираться..

Добавлено через 40 секунд
Цитата Сообщение от Deviaphan Посмотреть сообщение
Низя.) По заданию надо в функцию вынести и два массива сортировать.
Печально(
0
raskumar4ik
2 / 2 / 1
Регистрация: 31.03.2011
Сообщений: 18
31.03.2011, 18:17 16
Цитата Сообщение от Dark0809 Посмотреть сообщение
Ладно, спасибо всем, пойду разбираться..

Добавлено через 40 секунд

Печально(
+1...
и так все написал ))
1
31.03.2011, 18:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2011, 18:17

Отсортировать каждую строку матрицы по убыванию элементов методом пузырька
I. Дана матрица размерностью nxn, содержащая целые числа. Отсортировать: 1. каждую строку матрицы...

Отсортировать одномерный массив действительных чисел методом пузырька (по убыванию)
Отсортировать одномерный массив действительных чисел методом пузырька (по убыванию)

Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом пузырька
Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом пузырька


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

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

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