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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.99
Dark0809
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 34
#1

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

31.03.2011, 17:31. Просмотров 12201. Ответов 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++):

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

Отсортировать массив по убыванию методом пузырька - C++
Вот то что у меня получилось #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; using namespace std; int main(void) {...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2011, 18:11
Привет! Вот еще темы с ответами:

Сортировка методом пузырька - C++
массив я задал, а вот сортировку не могу сделать(( #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; ...

Сортировка методом пузырька - C++
Народ, можете помочь с сортировкой массива методом пузырька. Буду очень презнателен за скорую помощь)) Вот прога: #include...

Сортировка методом пузырька - C++
Всем привет. Ругается на i. Пишет Выражение должно иметь тип указателя на объект. В дополнении пишет что swap не определен. Помогите...

Сортировка методом пузырька - C++
Приветствую всех. Нужно решить простую задачу. Есть массив из 10 элементов от 0 по 9. И в нём записаны различные числа. И их нужно...


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

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

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