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

Ошибка в Функции - C++

Восстановить пароль Регистрация
 
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 11:38     Ошибка в Функции #1
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
44
45
46
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <iomanip.h>
 
 
  bubbleSort(int , const int);
 
   main()
   {
   const int arraySize=10;
   int a[arraySize] = {1, 2, 4 , 6, 9, 1, 2, 3, 4, 65};
       cout << "elmentu v ishodnom poradku " <<endl;
 
     for (int i=0; i<arraySize ; i++)
     cout <<setw(5) <<a[i];
         cout <<endl;
 
       bubbleSort (a, arraySize);
     cout <<endl << "elementu v vozrost poriadku ";
       cout <<endl;
          for (int i=0; i<arraySize; i++)
             cout << setw(5)<<a[i];
          cout <<endl;
     return 0;
 }
 
 
  void bubbleSort(int  *array,  const int size)
   {
     void swap(int  ,  int );
 
             for( int pass=0; pass<size; pass++)
                for( int j=0; j<size-1; j++)
 
          if (array[j]>array[j+1])
        swap( &array[j], &array[j+1]);
 
   }
 
   void swap(int *element1Ptr, int  *element2Ptr)
   {
   int temp = *element1Ptr;
   *element1Ptr =  *element2Ptr;
   *element2Ptr = temp;
   }
помогите плз исправить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 11:38     Ошибка в Функции
Посмотрите здесь:

C++ Функции. Ошибка(
Ошибка функции C++
Ошибка в функции C++
Ошибка в функции C++
Ошибка в функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 11:57     Ошибка в Функции #2
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
 void bubbleSort(int *, const int);
 int  main()
   {
   const int arraySize=10;
   int a[arraySize] = {1, 2, 4 , 6, 9, 1, 2, 3, 4, 65};
       cout << "elmentu v ishodnom poradku " <<endl;
 
     for (int i=0; i<arraySize ; i++)
     cout <<setw(5) <<a[i];
         cout <<endl;
 
       bubbleSort (a, arraySize);
     cout <<endl << "elementu v vozrost poriadku ";
       cout <<endl;
          for (int i=0; i<arraySize; i++)
             cout << setw(5)<<a[i];
          cout <<endl;
     return 0;
 }
 
 
  void bubbleSort(int  *array,  const int size)
   {
     void swap(int * ,  int *);
 
             for( int pass=0; pass<size; pass++)
                for( int j=0; j<size-1; j++)
 
          if (array[j]>array[j+1])
        swap( &array[j], &array[j+1]);
 
   }
 
   void swap(int *element1Ptr, int  *element2Ptr)
   {
   int temp = *element1Ptr;
   *element1Ptr =  *element2Ptr;
   *element2Ptr = temp;
   }
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 12:10  [ТС]     Ошибка в Функции #3
Спасибо, прочитал, что функцыю bubbleSort можно использовать только в одномерном массиве, а как быть с двомерным массивом?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 12:13     Ошибка в Функции #4
Цитата Сообщение от Ihor3 Посмотреть сообщение
а как быть с двомерным массивом?
Ну тут уже сугубо от нужды. Сортировка одномерного массива - дело понятное, а двумерный можно отсортировать разными способами, поэтому под разные способы нужны будут разные функции
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 12:25  [ТС]     Ошибка в Функции #5
тоесть будет какаята функцыя типа bubbleSort?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 12:27     Ошибка в Функции #6
ага. Если двумерный массив выделен сплошняком, то можно его интерпретировать как одномерный и отсортировать, но опять же все зависит от конечной цели.
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 12:33  [ТС]     Ошибка в Функции #7
допустим моя цель- отсортировать масив так, чтобы на мете [0][1][0] [2]...[n][n] елементы сортировалысь по увеличению
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 12:43     Ошибка в Функции #8
Поменял main:
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
 int  main()
   {
   const int arraySizeX=3;
    const int arraySizeY=10;
    int a[arraySizeX][arraySizeY] = {{1, 2, 24 , 62, 9, 31, 2, 34, 4, 65},
                                                {3, 5, 4 , 61, 7, 3, 21, 3, 7, 65},
                                                {9, 7, 42 , 68, 1, 9, 2, 3, 8, 65}
    };
       cout << "elmentu v ishodnom poradku " <<endl;
 
     for (int i=0; i<arraySizeX ; i++){
          for (int j=0; j<arraySizeY ; j++)
                cout <<setw(5) <<a[i][j];
          cout <<endl;
      }
     cout <<endl;
       bubbleSort (&a[0][0], arraySizeX*arraySizeY);//Передаем указатель на первый элемент и размер всего массива
     cout <<endl << "elementu v vozrost poriadku ";
       cout <<endl;
     for (int i=0; i<arraySizeX ; i++){
          for (int j=0; j<arraySizeY ; j++)
                cout <<setw(5) <<a[i][j];
          cout <<endl;
      }
     return 0;
 }
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 12:55  [ТС]     Ошибка в Функции #9
C++
1
2
int n= -5, b=-9000;
   int a[arraySize] = n+rand()% (b-n+1) ;
не выходит задать массив случайными числами (
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 13:01     Ошибка в Функции #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 int  main()
   {
   const int arraySize=10;
   int a[arraySize] = {1, 2, 4 , 6, 9, 1, 2, 3, 4, 65};
    int n= -5, b=-9000;
       cout << "elmentu v ishodnom poradku " <<endl;
 
     for (int i=0; i<arraySize ; i++)
     cout <<setw(5) <<(a[i]=n+rand()% (b-n+1));
         cout <<endl;
 
       bubbleSort (a, arraySize);
     cout <<endl << "elementu v vozrost poriadku ";
       cout <<endl;
          for (int i=0; i<arraySize; i++)
             cout << setw(5)<<a[i];
          cout <<endl;
     return 0;
 }
Добавлено через 52 секунды
ну или так расписать цикл:
C++
1
2
3
4
     for (int i=0; i<arraySize ; i++){
          a[i]=n+rand()% (b-n+1);
        cout <<setw(5) <<a[i];
      }
Ihor3
3 / 3 / 1
Регистрация: 14.11.2012
Сообщений: 235
13.04.2013, 14:53  [ТС]     Ошибка в Функции #11
почемуто элементы все положительные , хотя диапазон задаю -5...-9000

Добавлено через 11 минут
опрос отпал нужно так
C++
1
(a[i]=n - rand()% (b-n+1))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2013, 14:54     Ошибка в Функции
Еще ссылки по теме:

C++ Ошибка в функции
Ошибка в функции C++
C++ Ошибка в функции

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
13.04.2013, 14:54     Ошибка в Функции #12
Судя по формуле
C++
1
n+rand()% (b-n+1)
b - это верхняя граница, а
n - нижняя.
Только у Вас получается n=-5,а b=-9000, То есть
b<n (максимум меньше минимума), поэтому так и получается.

Вот так сделайте:
C++
1
int n= -9000, b=-5;
Yandex
Объявления
13.04.2013, 14:54     Ошибка в Функции
Ответ Создать тему
Опции темы

Текущее время: 01:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru