ce l'ho fatta  grazie lo stesso per i consigli
 grazie lo stesso per i consigli 
vi posto il codice nel caso qualcuno avesse lo stesso problema :
	codice:
	#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define stringa 50
#define dim 500
typedef struct{
    char cognome[stringa];
    char nome[stringa];
    char titolo[stringa];
    char casa[stringa];
    int anno;
    int codice;
}Libro;
int ind=0;
Libro biblioteca[dim];
void inserisci(Libro);
void visualizza_libro(Libro);
void visualizza(void);
void cancella(int);
int ricerca(char[]);
int ricerca_int(int);
void shift(int);
int main(void)
{
    int i;
    int scl;
    int qnt;
    int x;
    Libro l={"Manfredi","Massimo Valerio","Le idi di marzo","Arnoldo Mondadori",1234,1234567};
    char cercato[stringa];
    int trv;
    int segn=-1;
    int risp=-1;
    int canc;
    int men;
    do{
        printf("\n************************\n");
        printf("1)Visualizza libri presenti\n");
        printf("2)Inserisci nuovi libri\n");
        printf("3)Ricerca un libro\n");
        printf("4)Cancella un libro\n");
        scanf("%d" ,&scl);
        if(scl < 0 || scl > 4)
            printf("hai inserito dei valori invalidi\n");
        switch(scl)
        {
        case 1:
            visualizza();
            break;
        case 2:
            printf("\nCompila i seguenti campi:\n");
            while(men != -1)
            {
                printf("Cognome:\n");
                scanf("%s" ,&l.cognome);
                printf("Nome:\n");
                scanf("%s" ,&l.nome);
                printf("Titolo:\n");
                scanf("%s" ,&l.titolo);
                printf("Casa editrice:\n");
                scanf("%s" ,&l.casa);
                printf("Anno:\n");
                scanf("%d" ,&l.anno);
                printf("Codice:\n");
                scanf("%d" ,&l.codice);
                printf("Inserire -1 per terminare, 0 per continuare\n");
                scanf("%d" ,&men);
                inserisci(l);
            }
            break;
        case 3:
            do{
                printf("\n***********************\n");
                printf("1)Ricerca per autore, titolo, casa editrice\n");
                printf("2)Ricerca per anno, codice\n");
                printf("0)torna al menu' precedente\n");
                scanf("%d" ,&x);
                switch(x)
                {
                case 1:
                        printf("Inserisci cosa vuoi ricercare:\n");
                        scanf("%s" ,&cercato);
                        risp=ricerca(cercato);
                        if(risp != -1)
                            printf("Hai cercato %s, che si trova alla posizione %d\n",cercato,risp);
                        else
                            printf("Non hai trovato nessun elemento corrispondente\n");
                    break;
                case 2:
                    printf("inserisci l'elemento da cercare:\n");
                    scanf("%d" ,&trv);
                    segn=ricerca_int(trv);
                   if(segn != -1)
                    printf("L'elemento cercato:%d si trova nella posizione :%d" ,trv,segn);
                   else
                    printf("L'elemento %d non e' stato riscontrato" ,cercato);
                    break;
                }
            }while(x != 0);
        case 4:
            visualizza();
            printf("Inserisci il codice\n");
            scanf("%d" ,&canc);
            cancella(canc);
            break;
        }
    }while(scl != 0);
    return 0;
}
void inserisci(Libro wbook)
{
    biblioteca[ind]=wbook;
    ind++;
}
void visualizza(void)
{
    int i;
    for(i=0; i<ind; i++)
    {
        printf("\nLibro numero: %d\n" ,i+1);
        visualizza_libro(biblioteca[i]);
    }
}
void visualizza_libro(Libro wbook)
{
    printf("Cognome:%s\nNome:%s\nTitolo:%s\nCasa Editrice:%s\nAnno;%d\nCodice:%d\n" ,wbook.cognome, wbook.nome, wbook.titolo, wbook.casa, wbook.anno, wbook.codice);
}
int ricerca(char wcercato[])
{
    int i=0;
    int scl;
    int trovato=0;
    while(trovato == 0 && i<=ind)
    {
        if(strcmp(wcercato, biblioteca[i].cognome)==0)
            trovato=1;
        else if(strcmp(wcercato, biblioteca[i].nome)== 0)
            trovato=1;
        else if(strcmp(wcercato, biblioteca[i].titolo)== 0)
            trovato=1;
        else if(strcmp(wcercato, biblioteca[i].casa)== 0)
            trovato=1;
        i++;
    }
    if(trovato == 1)
        return i;
    else
        return -1;
}
int ricerca_int(int wcercato)
{
    int trovato=0;
    int i=0;
    while(trovato == 0 && i<ind)
    {
        if(biblioteca[i].anno == wcercato)
            trovato=1;
        else if(biblioteca[i].codice == wcercato)
            trovato=1;
        i++;
    }
    if(trovato == 1)
            return i;
    else
            return -1;
}
void cancella(int wcancellato)
{
    int i;
    int pos_canc=-1;
    pos_canc=ricerca_int(wcancellato);
    if(pos_canc != -1)
    {
        shift(pos_canc);
        ind--;
    }
    else
        printf("Non hai trovato nessun elemento corrispondente\n");
}
void shift(int qcancellato)
{
    int i;
    for(i=qcancellato; i<ind; i++)
    {
        biblioteca[i]=biblioteca[i+1];
    }
}