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

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

Войти
Регистрация
Восстановить пароль
 
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
#1

С\С++ Передача в функцию 2 массива - C++

07.11.2012, 21:53. Просмотров 438. Ответов 8
Метки нет (Все метки)

Всем доброго времени суток, при написание программы столкнулся с проблемой.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void qs(int s_arr[], int first, int last, int b[])
{
    int i = first, j = last, x = s_arr[(first + last) / 2],tmp;
 
    do {
        while (s_arr[i] < x) i++;
        while (s_arr[j] > x) j--;
 
        if(i <= j) {
            if (i < j) swap(&s_arr[i], &s_arr[j]);
            i++;
            j--;
        }
    } while (i <= j);
 
    if (i < last)
        qs(s_arr, i, last);
    if (first < j)
        qs(s_arr, first,j);
}
Выдает ошибку "error: too few arguments to function 'void qs(int*, int, int, int*)"
Я только зарегестрировался извините за оформление.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 21:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С\С++ Передача в функцию 2 массива (C++):

Передача массива в функцию используя указатель на функцию - C++
У меня имеется готовая программа без передачи функции в функцию указателем, мне нужно передать функцию ввода масива в функцию его обработки...

Передача двухмерного массива из функцию в функцию - C++
Допустим у меня есть функция, в которой &quot;генерируется&quot; массив. Но нужно его передать в другую функцию, которая его выведет на экран. ...

Передача массива структур в функцию не указывая размера массива - C++
Я читаю с командной строки файл в котором содержится массив структур. Есть библиотека с функцией в которую я прередаю файл и массив...

Передача массива в функцию - C++
Всем привет. Есть некий динамический массив arr; Его надо передать в функцию. Я уже пробовал несколько вариантов, но Dev ругается. Как...

Передача массива в функцию - C++
есть массив в методе какого то класса void _mServer::Listen() { .... ULONG s_c; s_c = (ULONG) this; s_c = (ULONG)...

Передача массива в функцию - C++
Как сделать функцию, в которую будет передавться массив. я что-то не оч понимаю. вот исходный код #include &lt;iostream&gt; #include...

8
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 867
Регистрация: 27.09.2012
Сообщений: 18,896
Записей в блоге: 3
Завершенные тесты: 1
07.11.2012, 21:56 #2
Например, нет "{" вначале функции
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
07.11.2012, 22:02 #3
а ты не видишь?
Цитата Сообщение от bladewolk Посмотреть сообщение
qs(s_arr, i, last);
int s_arr[] у тебя соответствует s_arr, окей
int first у тебя соответствует i, окей
int last у тебя соответствует last, окей
А int b[] У ТЕБЯ КАК ПЕРЕДАЁТСЯ???

Аналогично
Цитата Сообщение от bladewolk Посмотреть сообщение
qs(s_arr, first,j);
int s_arr[] у тебя соответствует s_arr, окей
int first у тебя соответствует first, окей
int last у тебя соответствует j, окей
А int b[] У ТЕБЯ КАК ПЕРЕДАЁТСЯ???

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Например, нет "{" вначале функции
тут не обязательно выкладывать код целиком.
Редко кто задаёт вопросы вроде:
"Эй! мне дали код типа
C++
1
2
3
4
for(...)
if(...)
while(...){...}
cout<<otvet;
А он говорит error: unresolved external symbol _main referenced in function Что такое main?"
0
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 22:10  [ТС] #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а ты не видишь?

int s_arr[] у тебя соответствует s_arr, окей
int first у тебя соответствует i, окей
int last у тебя соответствует last, окей
А int b[] У ТЕБЯ КАК ПЕРЕДАЁТСЯ??? :
Строчка где будет использоваться b
if (i < j) { swap(&s_arr[i], &s_arr[j]); swap(&b[i], &b[j]);}
Но чтобы дойти до этой строчки нужно решить проблему строчки по которой и выдает мне ошибку
void qs(int s_arr[], int first, int last, int b[])
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
07.11.2012, 22:16 #5
Что значит решить "проблему строчки"? ты должен передать в функцию 4 аргумента:массив, число, число и массив. Не три, а четыре. Не массив и два числа, а как объявлено. Пока передаёшь три - будет ошибка.
Иначе, я подозреваю, что ты сам не понимаешь, какие аргументы должна брать функ-я.
0
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 23:01  [ТС] #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Что значит решить "проблему строчки"? ты должен передать в функцию 4 аргумента:массив, число, число и массив. Не три, а четыре. Не массив и два числа, а как объявлено. Пока передаёшь три - будет ошибка.
Иначе, я подозреваю, что ты сам не понимаешь, какие аргументы должна брать функ-я.
Напишите код для передачи 4 аргументов, а не 3 как вы мне отвечаете
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
07.11.2012, 23:22 #7
Мне писать код? Я понятия не имею, что это за функция. Хотяя догадываюсь, что это quicksort. Его реализаций полно в инете.
Насчёт же твоего кода. Просто убери ", int b[]" - ты же его нигде не используешь!
Если же хочешь использовать - так используй, а не объявляй функцию, в которой он не используется.

Добавлено через 8 минут
Если же не хочешь использовать - так объявляй функцию void qs(int s_arr[], int first, int last)
Если же хочешь передавать в функцию 2 массива, так передавай, блин if (i < last) qs(s_arr, i, last, b);

вызов функции в любом случае должен соответствовать объявлению.
1
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 23:47  [ТС] #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Если же хочешь передавать в функцию 2 массива, так передавай, блин if (i < last) qs(s_arr, i, last, b);
То что я здесь не писал b и есть ошибка, я как то не обратил на это внимание, спасибо большое!
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.11.2012, 00:10 #9
да это точно quicksort!Уважаемый ТС, просто при вызове функции в мейне подставьте ещё и передачу 2ого массива.И кстати, сортировка Хоара у вас криво реализована(есть кое-каие дыры в ней)
0
08.11.2012, 00:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 00:10
Привет! Вот еще темы с ответами:

Передача массива в функцию - C++
Какие есть способы для передачи массивы в функцию. И как передать массив с указателем на него чтобы все изменения вносились в него? Если...

Передача массива в функцию - C++
Я только-только начал изучать указатели, поэтому в этой области туплю... У меня в функции main создается массив указателей на обьекты...

Передача массива в функцию - C++
Как записать данные в массив, который в функции и после вызова функции получить эти данные. По типу как с переменными void...

Передача массива в функцию - C++
Не знаю в чем проблема, почему-то в функции act()(это моя функция), итерации выполняются по два раза. Суть задания создать обратную...


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

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

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