Ваш код имеет две проблемы:
fun
Тип возврата void
. Таким образом, это:
cout << fun(5) << endl;
не может работать должным образом. Чтобы использовать значение void
, функция возврата вызывает неопределенное поведение.
Печать в main
из n
в целом является избыточной, поскольку вы уже печатаете ее в fun()
.
Скорее сделайте это как:
#include <iostream>
using namespace std;
int fun(int n)
{
if (n == 0)
return;
cout << n << endl;
fun(n - 1);
}
int main(void)
{
fun(5);
return 0;
}