Ronnie_03
Power Member
Já fiz mais ou menos o que disseste...ficou assim:
Na função main penso que já esteja tudo e na função increment também já pus return 1 e return 0 como disseste. Agora vendo a função tenho vários problemas, primeiro porque tenho um ciclo infinito e segundo porque a função increment vai guardando na mesma posição todas as letras e só depois é que volta á função main, logo só vai mostrar a letra A e na ultima posição a letra Z, ou seja com 3 letras faz sempre AAZ, AAZ, AAZ...e assim infinitamente.
Quanto á recursividade também não sei como é que a hei-de fazer, mas já percebi a ideia do Aparicio, quanto a incrementar qual posição (ou seja já percebi o quê que faz o n na função increment).
Código:
//combinações de letras
#include <iostream>
using namespace std;
int increment (char arr[], int n)
{
if (n>0)
{
for (int x='A'; x<='Z'; x++)
{
arr[n]=x;
}
return 1;
}
else
return 0;
}
int main()
{
int n;
cout << "Este programa cria palavras com n letras" << endl;
cout << "\nIntroduza o numero de letras:";
cin >> n;
char arr[n+1];
for (int y=0; y <= n; y++)
{
arr[y]='A';
}
arr[n]=0;
do printf("%s\n", arr);
while ( increment (arr, n-1));
cin.get();
cin.get();
return 0;
}
Na função main penso que já esteja tudo e na função increment também já pus return 1 e return 0 como disseste. Agora vendo a função tenho vários problemas, primeiro porque tenho um ciclo infinito e segundo porque a função increment vai guardando na mesma posição todas as letras e só depois é que volta á função main, logo só vai mostrar a letra A e na ultima posição a letra Z, ou seja com 3 letras faz sempre AAZ, AAZ, AAZ...e assim infinitamente.
Quanto á recursividade também não sei como é que a hei-de fazer, mas já percebi a ideia do Aparicio, quanto a incrementar qual posição (ou seja já percebi o quê que faz o n na função increment).