[RISOLTO]esercizio su ricerca binaria di stringhe

di il
2 risposte

[RISOLTO]esercizio su ricerca binaria di stringhe

Devo fare un esercizio dove, una volta caricato l'array bidimensionale con stringhe, scrivo da tastiera una nuova stringa e la cerca se è presente o meno nell'array...

io ho scritto questo codice ma mi da errore di core dumped:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int RicercaBinaria(char **array, char stringa[101], int sinistra, int destra) {
   int centro;
   if (sinistra==destra) {
       if (strcmp(stringa,array[sinistra])==0) {
           return sinistra;
       } else {
           return -1;
       }
   }
   centro=(sinistra+destra)/2;
   if (strcmp(stringa,array[centro])<0){
       return RicercaBinaria(array, stringa, sinistra, centro);
   } else if (strcmp(stringa,array[centro])==0){
	return centro;
   }else if (strcmp(stringa,array[centro])>0){
       return RicercaBinaria(array, stringa, centro+1, destra);
   }
}

int main() {
	int n;
	char **a;
	int i;
	scanf ("%d",&n);
	a=malloc(n*sizeof(char*));
	for (i=0; i<n; i++) {
		a[i]=malloc(101*sizeof(char));
		scanf ("%s",a[i]);
	}
	char k[101];
	int p;
	int pos;
	scanf ("%d",&p);
	while (p==1){
		scanf ("%s",k);
		pos=RicercaBinaria(a,k,0,n);
		printf ("%d",pos);
		scanf ("%d",&p);
	}
return 0;
}
qualcuno sa come aiutarmi?

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte