Salve ragazzi, di seguito vi mostro il problema che da un pò di giorni mi sta togliendo abbastanza tempo e riguarda la simulazione della gestione di un dizionario. Tale simulazione può essere fatta utlizzando anche 3-4 parole, di seguito vi inoltro la traccia:
Si vuole simulare la gestione di un dizionario della lingua italiana. Il dizionario è
indicizzato tramite le lettere dell’alfabeto ed ogni parola contiene il significato.
Permettere all’utente di:
• Inserire una parola, ricercarla nel dizionario e visualizzare il significato
• Visualizzare la parola del dizionario contenente più consonanti.
Dopo un poco di tempo sono riuscito a buttar giù un poco di codice, ma mi sono bloccato.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct parola{
char *nome;
char *significato;};
int ric_bin(char *chiave, char elenco[], int n)
{
int primo=0, mediano, ultimo=n-1;
while(primo<ultimo)
{
mediano=(primo+ultimo)/2;
if(chiave==elenco[mediano])
return elenco[mediano];
else if(chiave<elenco[mediano])
ultimo=mediano-1;
else
primo=mediano+1;
}
return -1;
}
int main()
{
int i,j,k;
char *temp;
/*ARRAY DI STRUCT*/
struct parola dizionario[3]=
{{"cane","Il cane e' un mammifero appartenente all'ordine Carnivora, della famiglia dei canidi"},
{"diligenza","La diligenza e' l'assiduita', la precisione, lo scrupolo perseguiti nello svolgimento di un lavoro o di un compito"},
{"corso","Serie di lezioni ordinata secondo un criterio di progressivo apprendimento"},
};
/*ORDINA TRAMITE L'INDICE*/
for(i=0;i<5;i++)
{for(j=i+1;j<5;j++)
{if(strcmp(dizionario[i].nome,dizionario[j].nome)<0)
{
temp=dizionario[j].nome;
dizionario[j].nome=dizionario[i].nome;
dizionario[i].nome=temp;
}
}
}
printf("\n");
}