elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Problema con función hash con peso en: 13 Abril 2015, 01:57 am
Cuando elevas 37 a la 6, excedes de 2147483648 que es el máximo para un signed int por eso sale negativo, tienes que utilizar un tipo de variable más grande para suma.
Tienes razón, gracias.
2  Programación / Programación C/C++ / Re: Problema con función hash con peso en: 11 Abril 2015, 03:59 am
Código
  1. ascii=(int)nombre[i];

Olvidé escribirlo en el código que compartí pero en el compilador sí lo tengo como lo pusiste y me continúa con el erro
3  Programación / Programación C/C++ / Problema con función hash con peso en: 11 Abril 2015, 03:27 am
¿Qué tal? Soy nuevo en esto de la programación y recién inicio con funciones hash, tengo un problema con la función de dispersión con peso, cuando ingreso una cadena con longitud 6 la función genera números negativos y cuando son cadenas de 5 o menos sí funciona correctamente. ¿Qué problema logran identificar?
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);
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines