Ricerca binaria in un vettore

di il
1 risposte

Ricerca binaria in un vettore

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

1 Risposte

  • Re: Ricerca binaria in un vettore

    
    prog.c:10: warning: return type defaults to ‘int’
    prog.c: In function ‘main’:
    prog.c:17: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
    prog.c: At top level:
    prog.c:69: error: expected expression before ‘int’
    
    la parentesi tonda non la quadra
Devi accedere o registrarti per scrivere nel forum
1 risposte