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

Рекурсия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определитель матрицы на CUDA Cи http://www.cyberforum.ru/cpp-beginners/thread782799.html
Здравствуйте! прошу прощения если я создал тему не в том разделе! Надо написать программу которая вычисляет определитель матрицы 3х3 на CUDA C. На С++ я написал программу и перенес ее на CUDA, ео...
C++ Компьютер угадывает число Пользователь загадывает число от 1 до 100 и компьютер пытается угадать. На каждую попытку компьютера пользователь отвечает, больше (h) искомое число, или меньше (l). Я попытался реализовать... http://www.cyberforum.ru/cpp-beginners/thread782795.html
C++ Автоматические тесты
Добрый вечер. Пишу для курсового проекта автоматические тесты для одной формы довольно обширного проекта. Есть функция, проверяющая текущий трек(проект связан с радиолокацией). Функция: void...
C++ Найти: средний результат; всех воспитанников заданного тренера
помогите написать задание. Представить данную в варианте информацию в виде структуры. Реализовать функции считывания из файла/консоли и записи в файл/консоль полученной структуры. Сформировать...
C++ из Си С++ http://www.cyberforum.ru/cpp-beginners/thread782757.html
Привет всем, народ хелпание с переделыванием кода из си в с++, вроде все правильно переделал, а программа перестает работать как надо... // kursa4.cpp: определяет точку входа для консольного...
C++ При передаче ссылки на указатель программа зависает Почему это не работает (точнее работает но зависает т.к. в set_val_to23() ссылка на указатель val передаётся со значением 0: main(): void set_val_to23(int* &val) { *val=23; } int... подробнее

Показать сообщение отдельно
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64

Рекурсия - C++

09.02.2013, 21:45. Просмотров 316. Ответов 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
#include "stdafx.h"
#include <iostream>
const int n=4;
void swap(int &x,int &x1);
void pt(int* a1,int n1,int z);
int main()
{int a[n]={1,2,3,4};
pt(a,n,23);
system("pause");
return 0;}
void swap(int &x,int &x1,int z){
 
int t=x;
x=x1;
x1=t;}
void pt(int* a1,int n1,int z){
if(z>0){
int j=n1-2;
while(j!=-1&&a1[j]>a1[j+1])j--;
int k=n1-1;
while(a1[j]>a1[k])k--;
swap(a1[j],a1[k]);
int l = j + 1, r = n1 - 1;
while (l<r)
swap(a1[l++],a1[r--]);
pt(a1,n1,z-1);}
for(int i=0;i<4;i++)
std::cout<<a1[i]<<' ';
std::cout<<'\n';
}
Генерация перестановки в лексикографическом порядке. Выдает ошибку:
Ошибка 1error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl swap(int &,int &)" (?swap@@YAXAAH0@Z) в функции "void __cdecl pt(int *,int,int)" (?pt@@YAXPAHHH@Z) Perestanovka.obj
Это как понимать, что нельзя использовать ф-цию swap? Тут можно конечно и в цикле внутри main прокрутить(тогда работает), но хотелось именно рекурсию использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru