int firstPositive(int A[], int n)
{
if(n == 0)
return 0;
}
else
{
int x = firstPositive(A,n-1);
if(x != 0)
{
return x;
}
else if(A[n-1] > 0)
{
return A[n-1];
}
else
{
return 0;
}
}
}
Another approach is to create a helper function.
// firstPositiveHelp(A,i,n) yields
// the first positive number in list
// A[0], ..., A[n-1]. If none of thos
// are positive, it returns 0.
int firstPositiveHelp(int A[], int i, int n)
{
if(i >= n)
{
return 0;
}
else if(A[i] > 0)
{
return A[i];
}
else
{
return firstPositiveHelp(A, i+1, n);
}
}
int firstPositive(int A[], int n)
{
return firstPositiveHelp(A, 0, n);
}