Problem z warunkiem zatrzymania rekurencji - ktoś pomoże?

Witam. Mam zrobić takie zadanie: napisać program składający się z dwóch plików (+ trzeci plik .h). W każdym pliku mają być po trzy zmienne globalne: int, double, char. W każdym pliku mają być po dwie funkcje (main to też funkcja). Funkcje mają się tak wywoływać by każda z nich pracowała chociaż raz. Niech każda z funkcji:

  • najpierw wypisze na ekranie wartości 6 zmiennych globalnych;

  • zmieni ich wartości;

  • ponownie wypisze na ekranie wartości każdej z 6 zmiennych globalnych.

Oto kody tego co napisałem, brakuje mi warunku zatrzymania rekurencji:

plik 1:

#include

#include “naglowek.h”

using namespace std;

int liczba1 = 10;

double liczba3 = 12.6;

char znak1 = ‘a’;

void funkcja1(int x)

{

cout << "Liczba1 = " << liczba1 << endl;

cout << "Liczba3 = " << liczba3 << endl;

cout << "znak1 = " << znak1 << endl;

cout << "Liczba2 = " << liczba2 << endl;

cout << "Liczba4 = " << liczba4 << endl;

cout << "znak2 = " << znak2 << endl;

if(x > 0)funkcja1(x - 1);

}

int main()

{

funkcja3();

system(“PAUSE”);

return 0;

}

plik 2:

#include

#include “naglowek.h”

using namespace std;

int liczba2 = 20;

double liczba4 = 25.2;

char znak2 = ‘b’;

void funkcja2(int x)

{

if(x > 0)funkcja2(x - 1);

}

void funkcja3(int x)

{

funkcja1();

funkcja2();

}

plik 3:

#ifndef _naglowek_h_

#define _naglowek_h_

extern int liczba1;

extern double liczba3;

extern char znak1;

extern int liczba2;

extern double liczba4;

extern char znak2;

void funkcja1(int x = 0);

void funkcja2(int x = 0);

void funkcja3(int x = 0);

#endif

Pomoże ktoś???

void funkcja3(int x)

{

funkcja1(1);

funkcja2(1);

}

lub

void funkcja1(int x = 1);

void funkcja2(int x = 1);

Alex dzięki za odpowiedź. Teraz męczy mnie wywołanie tych funkcji żeby każda pracowała chociaż raz, a następnie by każda z nich wypisała wartości zmiennych globalnych, zmieniła te wartości i ponownie wyświetliła. Gdy wywołuje te funkcje to są one wywoływane w nieskończoność :frowning:

Czy zastosowałeś moją podpowiedź?

Jeżeli tak to funkcje 2 oraz 3 będą wywoływane po dwa razy.

Dzięki Alex. Już wiem o co chodzi :slight_smile: