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

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

Войти
Регистрация
Восстановить пароль
 
pitline
41 / 9 / 4
Регистрация: 21.12.2013
Сообщений: 208
#1

Сортировка массива пузырьком - найти ошибку в коде - C++

03.05.2014, 17:32. Просмотров 648. Ответов 12
Метки нет (Все метки)

В массив вношу 46 случайных чисел от 1 до 26 включая, упорядочиваю по убыванию сортировкой методом пузырька - выдает ошибку сам код вот
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
 
using namespace std;
 
int main()
{
  srand(time(0));
  int n=25;
  int arr[n];
  for (int i=0; i !=n; i++)
    {
      arr[i]=1+rand() % 46;
    }
 for (int i = n - 1; i > 0; i--)
  {
    for (int j = 0; j < i; j++)
    {
      if (arr[j] < arr[j + 1]) 
        swap( arr[j], arr[j + 1] );
    }
  }
 
   cout << "Otsortirovanniy massiv:";
     for (int i=0; i < n; i++)
       {
         cout << arr[i] << " ";
       }
     cout << endl;
     system("pause");
     return 0;
}
Подскажите где ошибка не могу найти, спасибо все кто просмотрел код, а остальным нет -:{
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 17:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массива пузырьком - найти ошибку в коде (C++):

Перемешивание элементов массива - найти ошибку в коде - C++
Добрый день! Помогите с заданием: необходимо перемешать элементы массива сам массив: const int size_2=20; int arro; ...

Сортировка массива пузырьком - C++
Здравствуйте! Нужен код сортировки массива пузырьком. Сначала на экран выдаётся сообщение с выбором сортировки, по типу: Нажмите 1,...

Нахождение суммы элементов массива, найти ошибку в коде - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; void fm(int a, int count){ for (int i=0; i&lt;count; i++) ...

Сортировка пузырьком двумерного массива. - C++
Задание: Упорядочить массив по возрастанию элементов к-строки (использовать сортировку пузырьком). for (int i = 0; i &lt; col; i++) ...

Сортировка улучшенным пузырьком массива - C++
Здравствуйте. Похожие темы поднимались не один раз, но ни где нету примера сортировки улучшенным пузырьком многомерного массива:( ...

Сортировка двумерного Массива пузырьком - C++
Всем Привет! Помогите пожалуйста отсортировать двумерный динамический массив рандомных чисел методом &quot;Пузырька&quot; С++ алгоритмом указаном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
03.05.2014, 17:42 #2
Вы не могли бы явным образом указать кто, как и в какой форме "выдает ошибку" - Я в данный момент скомпилировал и запустил вашу программу, получив вывод :
Otsortirovanniy massiv:46 46 45 41 40 35 34 34 31 26 25 25 25 25 21 20 18 17 15 14 13 12 12 9 1
sh: 1: pause: not found
0
Supernatural
301 / 156 / 29
Регистрация: 22.11.2010
Сообщений: 1,543
03.05.2014, 18:09 #3
Цитата Сообщение от pitline Посмотреть сообщение
выдает ошибку
ошибку покажи
а вообще сам код выполняется, вставил без модификаций
0
Миниатюры
Сортировка массива пузырьком - найти ошибку в коде  
pitline
41 / 9 / 4
Регистрация: 21.12.2013
Сообщений: 208
03.05.2014, 18:16  [ТС] #4
Вот что пишет про ошибки
1)error C2057: expected constant expression
2)error C2466: cannot allocate an array of constant size 0
3) error C2133: 'arr' : unknown size
Работаю в Microsoft Visual C++ 2010 Express
0
Supernatural
301 / 156 / 29
Регистрация: 22.11.2010
Сообщений: 1,543
03.05.2014, 18:21 #5
на каких строках указывается ошибка?
0
Ev_Hyper
Заблокирован
03.05.2014, 18:31 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
pitline, 11 строку замените на :
C++
1
  const int n=25;
1
pitline
41 / 9 / 4
Регистрация: 21.12.2013
Сообщений: 208
03.05.2014, 18:36  [ТС] #7
Ура, заработало.. Спасибо Вам, так что это за ошибка такая, особенность С/С++?
0
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
03.05.2014, 18:38 #8
Компилятор ругается на то, что для переменной типа статический массив целых чисел int arr[n]; Вы передаете в качестве n переменную, которая не является константной, что для компилятора (Вашего в данном случае, потому-что MinGW например проглатывает) указывает на невозможность определения размера переменной arr на этапе компиляции.
1
Ev_Hyper
Заблокирован
03.05.2014, 18:44 #9
pitline, да, но некоторые компиляторы пропускают такой вариант.
а вообще говоря по стандарту размер статического массива должен быть константным.
1
pitline
41 / 9 / 4
Регистрация: 21.12.2013
Сообщений: 208
03.05.2014, 19:34  [ТС] #10
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
а вообще говоря по стандарту размер статического массива должен быть константным.
А есть и динамический массив или вы просто так выразились?
0
Ev_Hyper
Заблокирован
03.05.2014, 19:36 #11
pitline, есть и динамические:
http://cppstudio.com/post/432/
0
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
03.05.2014, 19:37 #12
Безусловно, в C++ есть понятие динамического выделения памяти, и в частности - динамических массивов, немного информации на эту тему http://ru.wikipedia.org/wiki/Динамический массив
0
deadlinishe
7 / 7 / 1
Регистрация: 03.05.2014
Сообщений: 143
05.05.2014, 18:32 #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
39
40
41
42
43
#include <iostream>
using namespace std;
int array[100];
void*Sort(int col) 
{
    int trash=0;
 
    for (int i=1; i<=col ; i++)
    {
 
        for (int j=1; j<=col-i; j++) 
        {
 
            if (array [j]>array [j+1]) 
            {
 
                trash=array[j]; 
                array [j]=array [j+1];
                array [j+1]=trash;
            }
        }
    }
}
 
void*Out(int col)
{
    for (int i=1; i<=col; i++) 
    cout << array [i] <<" ";
    cout << endl; 
}
int main()
{
    int col_el;
    cout << " Vvedite dlinnu masiva"<< endl;
    cin >> col_el;
    for (int n=1; n<=col_el ; n++)
    cin >> array[n];
    Sort(col_el);
    cout << "Resultat:"<<endl;
    Out(col_el);
    cin >> col_el;
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2014, 18:32
Привет! Вот еще темы с ответами:

Сортировка двумерного массива пузырьком - C++
Помогите пожалуйста сортировать двумерный массив, когда создаю const все работает, а когда создаю динамический массив по убиванию все...

Сортировка массива по возрастанию(пузырьком) - C++
Считать данные из файла, отсортировать по возрастанию, результат поместить в другой файл.Помогите пожалуйста.

сортировка массива(найти ошибку) - C++
Дано натуральное число N (n от 1 до 100), целочисленный линейный массив a0, a1, …, aN-1. Элементы массива заполняются случайными целыми...

Помогите найти ошибку в коде(цикл for проходит не по всем элементам массива) - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;clocale&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; using namespace std; int...


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

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

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