Salve , oggi mentre programmavo , ho scritto il seguente file sorgente:
// ricerca binaria in un vettore
#include<stdio.h>
#define SIZE 15
int binarySearch(int [], int, int, int);
void printHeader(void);
void printRow(int [], int, int, int);
main()
{
int a[SIZE], i, chiave, risultato;
for (i = 0; i <= SIZE - 1; i++)
a[i] = 2 * i;
printf("Inserisci un numero tra 0 e 28: ");
scanf("%d" , &chiave);
printHeader();
risultato = binarySearch(a , chiave, 0, SIZE - 1);
if (risultato != -1)
printf("\n%d trovato nell'elemento del vettore %d\n", chiave , risultato);
else
printf("\n%d non trovato\n" , chiave);
return 0;
}
int binarySearch(int b[], int cercaChiave, int low, int high)
{
int middle;
while( low <= high) {
middle = (low + high) / 2;
printRow(b , low , middle , high);
if (cercaChiave == b[middle])
return middle;
else if (cercaChiave < b[middle])
high = middle - 1;
else
low = middle + 1;
}
return -1; // non trovata la cercaChiave
}
void printHeader(void)
{
int i;
printf("\nSubscripts:\n");
for (i = 0; i <= SIZE -1; i++)
printf("%3d ", i);
printf("\n");
for (i = 1; i <= 4 * SIZE; i++)
printf("-");
printf("\n");
}
void printRow[int b[], int low, int mid, int high)
{
int i;
for (i = 0; i <= SIZE - 1; i++)
if ( i < low OR i > high)
printf(" ");
else if (i == mid)
printf("%3d*" , b[i]); // marca il valore di mezzo
else
printf("%3d ", b[i]);
printf("\n");
}
poi ho provato a creare l'eseguibile , però mi da il seguente errore:" expected expression before 'int' " , però è da un ora che provo ma non riesco proprio a corregerlo questo errore , qualcuno saprebbe dirmi in cosa sbaglio?
grazie in anticipo