Código
Código:
#define MAX 100
#define PESO 37
void hashcliente(char nombre[]){ //generador de posición con peso hash
int suma=0;
int lugar=0;
int i=0; //posición
int j=0; //potencia
int ascii=0;
j=strlen(nombre)-1; //indica a qué potencia se elevará el peso
while(i<(strlen(nombre))){ //se realiza hasta que la posición del caracter sea igual a la longitud de la cadena, si la cadena=6 i=0 a 5
ascii=(int)nombre[i]; //convierte el caracter a su valor en ascii
suma=suma+(ascii*pow(PESO,j)); //j disminuye mientras i aumenta porque la primera posición se eleva por la longitud-1
i++;
j--;
printf("suma parcial: %d\n", suma);
}
printf("suma total: %d\n", suma);
lugar=suma%MAX;
printf("lugar: %d\n", lugar);
}