71> Ricerca dicotomica ricorsiva in un array ordinato
#include<stdio.h>
#define DIM 10
void visualizza(int []);
int binary_research(int [],int ,int ,int );
int main()
{
	int v[DIM]={11,56,64,77,88,102,113,145,154,161},N,fine,inizio,i,flag;
	inizio=0;
	fine=DIM-1;
	flag=0;
	visualizza(v);
	printf("inserisci numero: ");
	scanf("%d",&N);
	fflush(stdin);
	for(i=0;i<DIM;i++){
		if(v[i]==N){
			flag=1;
		}
	}
	if(flag==1){
		printf("il numero si trova alla posizione %d",binary_research(v,N,fine,inizio));
	}else
	{
		printf("numero non presente");	
	}
	return 0;
}
void visualizza(int v[DIM]){
	int i;
	for(i=0;i<DIM;i++){
		printf("%d ",v[i]);
	}
	putchar('\n');
}
int binary_research(int v[DIM],int N,int fine,int inizio){
	int medio;
	medio=(inizio+fine)/2;
	if(N==v[medio]){
		return medio+1;
	}else
	{
		if(N>v[medio]){
			return binary_research(v,N,fine,medio+1);
		}else
		{	
			return binary_research(v,N,medio-1,inizio);
		}
	}
}

    
  
071.c