Così a me funziona

codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>




typedef struct{
    char    titolo[50];
    char    autore[25];
    int     prezzo;
    int     stato;
    int     codice;
}lib;


lib max(lib a, lib b)
{
    if (a.prezzo > b.prezzo)
        return a;
    else
        return b;
}


lib massimo_a_ricDI(lib v[],int primo,int ultimo)
{
    int mediano;
    if(primo == ultimo)
        return v[primo];
    else
    {
        mediano=(primo+ultimo)/2;
        return max(massimo_a_ricDI(v,primo,mediano), massimo_a_ricDI(v,mediano+1,ultimo));
    }
}




int main()
{
	int i;
	const int n = 99;
	lib vett[n];
	srand(time(NULL));
	
	for(i = 0; i < n; i++)
	{
		vett[i].prezzo = rand();
		printf("%d\t", vett[i].prezzo);
	}
	printf("\n-----------------\n");
	
	printf("%d", massimo_a_ricDI(vett, 0, n-1).prezzo);


}