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

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

31.03.2011, 17:31. Просмотров 14730. Ответов 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&quot;stdafx.h&quot;...

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

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

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

15
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:47  [ТС] 5
ну строка 12 a[n]=rand()%100-50; это я задаю случайный массив
а вот насчет функции , в этом проблема, не знаю как работать с помощью функций..
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 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, содержащая целые числа. Отсортировать:...

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

Сортировка методом пузырька
добрый день по книге учу c++ и в книге был приведен пример сортировки...


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

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

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