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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda ordenar cantidad de caracteres de cada letra en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda ordenar cantidad de caracteres de cada letra en C  (Leído 1,528 veces)
Blast06

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda ordenar cantidad de caracteres de cada letra en C
« 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.


En línea

A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Ayuda ordenar cantidad de caracteres de cada letra en C
« Respuesta #1 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.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines