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

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

Восстановить пароль Регистрация
 
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 21:53     С\С++ Передача в функцию 2 массива #1
Всем доброго времени суток, при написание программы столкнулся с проблемой.


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*)"
Я только зарегестрировался извините за оформление.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11837 / 6816 / 771
Регистрация: 27.09.2012
Сообщений: 16,908
Записей в блоге: 2
Завершенные тесты: 1
07.11.2012, 21:56     С\С++ Передача в функцию 2 массива #2
Например, нет "{" вначале функции
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
07.11.2012, 22:02     С\С++ Передача в функцию 2 массива #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?"
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 22:10  [ТС]     С\С++ Передача в функцию 2 массива #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[])
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
07.11.2012, 22:16     С\С++ Передача в функцию 2 массива #5
Что значит решить "проблему строчки"? ты должен передать в функцию 4 аргумента:массив, число, число и массив. Не три, а четыре. Не массив и два числа, а как объявлено. Пока передаёшь три - будет ошибка.
Иначе, я подозреваю, что ты сам не понимаешь, какие аргументы должна брать функ-я.
bladewolk
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 6
07.11.2012, 23:01  [ТС]     С\С++ Передача в функцию 2 массива #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Что значит решить "проблему строчки"? ты должен передать в функцию 4 аргумента:массив, число, число и массив. Не три, а четыре. Не массив и два числа, а как объявлено. Пока передаёшь три - будет ошибка.
Иначе, я подозреваю, что ты сам не понимаешь, какие аргументы должна брать функ-я.
Напишите код для передачи 4 аргументов, а не 3 как вы мне отвечаете
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
07.11.2012, 23:22     С\С++ Передача в функцию 2 массива #7
Мне писать код? Я понятия не имею, что это за функция. Хотяя догадываюсь, что это quicksort. Его реализаций полно в инете.
Насчёт же твоего кода. Просто убери ", int b[]" - ты же его нигде не используешь!
Если же хочешь использовать - так используй, а не объявляй функцию, в которой он не используется.

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

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

Передача двухмерного массива из функцию в функцию C++
Передача массива в функцию C++
Передача массива в функцию используя указатель на функцию C++

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

Или воспользуйтесь поиском по форуму:
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
08.11.2012, 00:10     С\С++ Передача в функцию 2 массива #9
да это точно quicksort!Уважаемый ТС, просто при вызове функции в мейне подставьте ещё и передачу 2ого массива.И кстати, сортировка Хоара у вас криво реализована(есть кое-каие дыры в ней)
Yandex
Объявления
08.11.2012, 00:10     С\С++ Передача в функцию 2 массива
Ответ Создать тему
Опции темы

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