#include<stdio.h>
#define MAX_N 100
int solved(int a[ ],int n,int k)
    {
    int ub=(n-1),lb=0;
    while(ub>=lb)
    {
        int mid=(lb+ub)/2;
        if(a[mid]==k)
        return (mid);
        else if(a[mid]>=k)
   ub=mid;
        else
                  lb=mid;
    }
    return (-1);
    }
    
    
int main()
{
    int n,k,i,m;
    int a[MAX_N];
    scanf("%d%d",&n,&k);
    for(i=0;i<n;i++)
      scanf("%d",&a[i]);
    m=solved(a,n,k);
    printf("%d\n",m);
    return 0;
}
有两处错了:
k在辅助函数中没有
二是,你的副函数怎么是void,那怎么能调用返回值付给m