My code is giving error for float, but not for int

#include
using namespace std;
template
int search(K arr[],int n,K key){
for(int i=0;i<=n;i++) {
if(arr [i]==key) {
return i;
}
}
return -1;

}

int main() {
int a[]={2,3,4,5};
cout<<“a”<<’ ‘<<search(a,3,4)<<endl;
float k[]={4.2,4.3,5.6};
cout<<“k”<<’ '<<search(k,2,5.6);
return 0;
}