2014-10-15 4 views
0

В настоящее время я смотрю на проблему рекурсии, где он запрашивает у пользователя значение и печатает шаблон с использованием алгоритма рекурсии. У меня есть алгоритм завершен, и он работает с ints, но как я могу заставить его работать с любым другим типом, а также, говорит пользователь?Рекурсия с Char, int и т. Д.

Вот мой алгоритм,

#include <iostream> 

using namespace std; 

int str(int); 
int main() 
{ 
    int n; 
    cout << "Enter a value for the pattern"; 
    cin >> n; 

    str(n); 
return 0; 
} 

int str(int n) 
{ 
    int x; 
    if(n==0) 
    return -1; 

    for(int i=0;i<n;i++) 
     cout<<"*"; 
    cout<<endl; 
    x= str(n-1); 
    for(i=0;i<n;i++) 
     cout<<"*"; 
    cout<<endl; 
    return 0; 
} 
+1

Вы передаете длину, так что вы используете 'int' значение. Теперь я не понимаю, почему вы хотите отправить значение «char»? Что вы пошлете, приведи пример. – user1336087

+0

Я отредактировал мой код выше, он попросит пользователя ввести значение и взять его в алгоритм. Я хочу, чтобы пользователь мог вводить любой тип значения, будь то char или int. – tonno1426

+0

В чем смысл 'x'? Вы никогда не заходите на нее –

ответ

1

В рекурсии функция должны:

  • сам вызов: нормально
  • возвращения вычисленного значения, для которого вы надеетесь, что это будет в конце концов достигнет специального точка: текущий str не

Я думаю, что вы хотите вещи, как:

int str(int n) 
{ 
    int x; 
    if(n==0) 
    return -1; 

    for(int i=0;i<n;i++) 
     cout<<"*"; 
    cout<<endl; 
    x= str(n-1); 
    return x; 
} 

или более лаконична:

int str(int n) 
{ 
    if(n==0) 
    return -1; 

    for(int i=0;i<n;i++) 
     cout<<"*"; 
    cout<<endl; 
    return str(n-1); 
} 
Смежные вопросы