Why is it always giving -1
#include<bits/stdc++.h>
using namespace std;
int linear(int *a,int i,int n,int key)
{
if(i==n){
return -1;
}
if(a[i]==key){
return i;
}
return linear(a,i+1,n,key);
}
int main()
{
int arr[]={1,2,3,7,4,5,8,7};
int n=sizeof(n)/sizeof(int);
int i=0;
int key=7;
cout<<linear(arr,i,n,key);
return 0;
}