Eroare output stream

Acest forum este dedicat intrebarilor de programare care nu-si au locul in unul din celelalte forumuri
Post Reply
Skyp89
Junior
Junior
Posts: 12
Joined: 25 Jan 2016, 11:55
Judet: Suceava

Eroare output stream

Post by Skyp89 » 03 Jun 2016, 01:43

Am scris codul asta pentru generarea permutarilor a n numere utilizand metoda backtracking. Am la compilare o eroare (defapt sunt 4 erori dar cred ca sunt declansate de un singur bug) in functia "print_solution" privitoare la "out". Cand compilez, eroarile zic ceva de genul: identifier "out" is undefined, DESI am declarat in main() stream pentru output si nu cred ca s-a inchis pe parcurs. Cum pot corecta codul?

Codul:

#include <iostream>
#include <fstream>

using namespace std;

int n, solutions[5];

int solution(int k)
{
return k == n + 1;
}

void print_solution()
{
for (int i = 1; i <= n; i++)
out << solutions << " "; //eroare

out << '\n'; // eroare
}

void initialise(int k)
{
solutions[k] = 0;
}


int succesor_exists(int k)
{
if (solutions[k] < n)
{
solutions[k]++;
return 1;
}
else
return 0;
}

int valid_element_in_solutions_array(int k)
{
int valid = 1, i;
for (i = 1; i <= k - 1; i++)
if (solutions[k] == solutions)
valid = 0;
return valid;
}

void backtracking(int k)
{
if (solution(k))
print_solution();
else
{
initialise(k);
while (succesor_exists(k))
if (valid_element_in_solutions_array(k))
backtracking(k + 1);
}
}

int main()
{
ifstream in("permutari.in");
ofstream out("permutari.out");

in >> n;

backtracking(1);

in.close();
out.close();

return 0;
}



Viorel
Microsoft MVP
Microsoft MVP
Posts: 287
Joined: 13 Jul 2007, 12:26

Re: Eroare output stream

Post by Viorel » 03 Jun 2016, 07:36

Transmite out ca parametru:

Code: Select all

void print_solution( ostream & out )
{
    . . .
}

void backtracking( ostream & out, int k )
{
    if( solution( k ) )
        print_solution( out );
    . . .
}

// în funcția ‘main’:

backtracking( out, 1 );


Post Reply