Título: Ayuda ordenar cantidad de caracteres de cada letra en C Publicado por: Blast06 en 5 Agosto 2015, 13:44 pm Saludos.
estoy atascado en la parte de ordenar, logré ordenar la cantidad de caracteres pero los caracteres que se imprimen son de otro mundo xD. Miren: Código: int main() { char texto[128], caracteres[256] = {0}; int i, h, mayor, elmayor; printf("Ingrese una frase o texto: "); gets(texto); for(i = 0; texto[i] != '\0'; i++){ caracteres[(int)texto[i]]++;} //Para letras for(i = 0; i < 128; i++){ for(h=i+1; h < 128; h++){ if(texto[i]>= texto[h]){ elmayor= texto[i]; texto[i]=texto[h]; texto[h]=elmayor;} } } //para numeros for(i = 0; i<256; i++){ for(h =i+1; h <256; h++){ if(caracteres[i]>= caracteres[h]){ mayor= caracteres[i]; caracteres[i]=caracteres[h]; caracteres[h]=mayor;} } } for(i = 0; i < 256; i++){ if(caracteres[i] > 0){ printf("\n%c = %d", i, caracteres[i]);}} getchar(); getchar(); return 0; } alguien sabe como podria solucionarlo y que quiere ayudarme con esa parte? gracias. Título: Re: Ayuda ordenar cantidad de caracteres de cada letra en C Publicado por: A.I. en 5 Agosto 2015, 14:07 pm for(i = 0; i < 128; i++){ for(h=i+1; h < 128; h++){ if(texto>= texto[h]){ elmayor= texto; texto=texto[h]; texto[h]=elmayor;} } } Por favor, indenta el código. Y usa la etiqueta GeSHI del lenguaje que estás usando. El problema es que haces los bucles mientras i y h son menores que 128, pero tu texto no tiene por que tener ese numero de caracteres y coge basura de posiciones de memoria no inicializadas, tienes que hacerlo hasta la longitud de la cadena. Prueba a usar una librería para manejo de cadenas. |