static const struct {
const char *producto;
int indice;
float clavada;
} ArrList[] = {
{ "agua", 1,12.3 },
{ "agua con gas", 2,17.4 },
{ "agua del grifo", 3 ,13.4 },
{ "cafe con leche", 4 ,14.4 },
{ "cafe sin leche", 5,15.4 },
{ "bocata de choped", 6 ,1.4 },
{ "bocata de crisis", 7 ,3.4 },
{ "bocata de lechuga", 8,1.4 },
{ "plato del dia", 9,13.4 },
{ "plato con binado", 10,13.45 },
{ "plato con nada", 11,5.43 },
{ "tapa de calamar", 12,15.46 },
{ "tapa de water", 13 ,19.4 },
};
static int Article(const char *str)
{
int start, end, cur;
int diff;
start = 0;
end = (sizeof(ArrList)/sizeof(ArrList[0])) - 1;
do {
cur = start + ((end - start) / 2);
diff = strcmp(str, ArrList[cur].producto);
if (diff == 0) {
return (cur);
} else if (diff < 0) {
end = cur - 1;
} else {
start = cur + 1;
}
} while (start <= end);
return (-1);
}
int main(void) {
int result ;
float total =0;
result = Article("tapa de water");
printf("Articulo:=%s ---------Precio :=%3.2f\n" ,ArrList[result].producto,ArrList[result].clavada);
total+=ArrList[result].clavada;
result = Article("agua");
printf("Articulo:=%s -------------Precio :=%3.2f\n" ,ArrList[result].producto,ArrList[result].clavada);
total+=ArrList[result].clavada;
result = Article("bocata de crisis");
printf("Articulo:=%s -----------Precio :=%3.2f\n" ,ArrList[result].producto,ArrList[result].clavada);
total+=ArrList[result].clavada;
printf("Gracias posu visita, vuelva usted mañana, total:=%3.2f\n",total );
return 0;
}