/* if i change line 10 to "print_array_1(a, n, ++i)" or "print_array_1(a, n, i+1)", then this code runs well.*/
#include<iostream>
#include<cstdio>
using namespace std;
void print_array_1(int a[], int n , int i) // n = size of array, i = start index
{
if(i>=n) return;
printf("%d\n",a[i]);
print_array_1(a, n, i++);
}
int main()
{
int arr[] = {1, 2, 3, 4, 5};
int n = 5;
print_array_1(arr, n, 0);
return 0;
}