0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
1

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

31.03.2011, 17:31. Показов 34853. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2011, 17:31
Ответы с готовыми решениями:

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

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

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

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

15
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:35 2
Почитайте про область видимости переменных.
Приведённый код не просто не работает, но и не компилируется. Я бы номера строк сказал, но тэги форматирования не удосужились использовать...
0
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:41  [ТС] 3
Я бы не просил помочь, если бы знал что где исправить...
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 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
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:47  [ТС] 5
ну строка 12 a[n]=rand()%100-50; это я задаю случайный массив
а вот насчет функции , в этом проблема, не знаю как работать с помощью функций..
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:48 6
А ещё, у меня такое ощущение, что это не пузырьковая сортировка.)
В пузырьковой соседние элементы сравниваются/переставляются.

Добавлено через 39 секунд
Цитата Сообщение от Dark0809 Посмотреть сообщение
это я задаю случайный массив
Нет. Это не так.
Почитай про область видимости переменных.
0
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 17:53  [ТС] 7
Цитата Сообщение от Deviaphan Посмотреть сообщение
А ещё, у меня такое ощущение, что это не пузырьковая сортировка.)
В пузырьковой соседние элементы сравниваются/переставляются.
Поэтому я обратился сюда, чтобы показали как правильно будет -_-
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 17:55 8
В пузырьковой сравнивают соседние элементы. http://ru.wikipedia.org/wiki/%... 0%BE%D0%BC
0
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:01  [ТС] 9
да,да я много читал инфы в интернете, после прочтения получился такой код, вы говорите что он неверен, поэтому я прошу написать как будет правильно..
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 18:02 10
Приведённый псеводкод один к одному заменяется на операторы С++. Только скобочки расставить.
И вапще...
0
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:05  [ТС] 11
С этим может быть разберусь, а вот как все это с помощью функции сделать я не знаю.
0
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 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
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
Делаю внезапно и красиво
Эксперт С++
1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
31.03.2011, 18:10 14
Цитата Сообщение от raskumar4ik Посмотреть сообщение
можно так
Низя.) По заданию надо в функцию вынести и два массива сортировать.
1
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
31.03.2011, 18:11  [ТС] 15
Ладно, спасибо всем, пойду разбираться..

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

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

Печально(
+1...
и так все написал ))
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2011, 18:17
Помогаю со студенческими работами здесь

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

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

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

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

Отсортировать массив по убыванию двумя методами: «пузырька» и методом прямого выбора
Задание. Элементы массива задать с помощью счетчика случайных чисел. Сортировку элементов массива...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru