codice:
int main()
{
  int a[SIZE]={0,1,2,3,4};
  int i;
  int key;
.....
.....
.....
}
codice:
int isOrdered(int vet[],int len)
{
int flag, i;
flag=1;
for(i=0; i<SIZE; i++)
{
printf("Valore di flag: %d\n", flag);
if (vet[i]>vet[i+1])
{
flag=0;
}
}
printf("Valore di flag: %d\n", flag);
return flag;
}
mmh..dunque ho seguito il consiglio tuo...ma il prog nn va lo stesso...cioè mi esegue sempre la ric lineare ma forse ho capito xkè....dunque in questo codice ho aggiunto anche due printf che stampano il valore del flag...SIZE è 5
l output del programma è il seguente:

codice:
bash-3.00# ./tot
Immetti un numero tra 0 e 4: 3
Valore di flag: 1
Valore di flag: 1
Valore di flag: 1
Valore di flag: 1
Valore di flag: 1
Valore di flag: 0
Ricerca lineare
Valore trovato nell'elemento 3
 bash-3.00#
c'è sempre quello 0 finale che mi altera il valore del flag quindi fa sempre la ric lineare..ma come posso ovviare?
ho provato a modificare la condizione if (vet[i]>vet[i+1])
ma senza successo