>>220 #include <string.h>
int binary_search (int *data, int data_no, int key_data)
{
    int right, left, center;
    left = 0;
    right = data_no - 1;
    
    while (right >= left){
        center = (left + right) / 2;
        
        if (data[center] == key_data){
            return (-1);
        }
        else if(data[center] < key_data){
            left = center + 1;
        }
        else if(data[center] > key_data){
            right = center - 1;
        }
    }
    return(left);
}
int add_data(int *data, int data_num, int add_data){
    int pos;
    if ( (pos=binary_search (data, data_num, add_data)) == -1)
    {
        return FAIL;
    }
    memmove(&data[pos+1], &data[pos], (data_num-pos)*sizeof(data_num));
    data[pos]=add_data;
    return SUCCESS;
}