>>677 適当でありますが
int cancel(char *id1){
    int x, item, info1;
    struct item *previous, *key;
    x = hash(id1);
    key = table[x];
    previous = table[x];
    item = search(id1);
    if(item > 1){
        printf("Input info\n");
        scanf("%d", &info1);
        if(key->info == info1){
            table[x] = key->next;
        }else{
            key = key->next;
            for(key = key->next; key != 0; key = key->next, previous = previous->next)
                if(key->info = info1){
                    previous->next = key->next;
                    break;
                }
        }
        free(key);
    }else if(item == 1){
        table[x] = 0;
        free(key);
    }
    return item;
}

さて、エロゲメーカーに就職するために、エロゲでもやるか。