jueves, 18 de agosto de 2011

Mostrar caracter que aparece más veces en un mensaje

Mostrar caracter que aparece más veces en un mensaje

Presentación


Enlace a Codepad


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pseudocódigo
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

INICIO
char mensaje [1000], letra_max
int contadores [256], contador_max = 0, i

//Se inicializan todos los valores de la tabla de contadores a cero
PARA i=0; i < 256; i++
contadores [i] = 0
FIN PARA

MOSTRAR Introduce el texto
LEER mensaje

//Se recorre todo el mensaje, incrementando la posición de la tabla contadores correspondiente al valor del código //ascci del caracter leido
PARA i=0; i < strlen(mensaje); i++
contadores [ mensaje [i] ] ++
FIN PARA

//Se recorre la tabla de contadores para buscar el número mayor
PARA i=0; i < 256; i++
SI contador [i] > contador_max
contador_max = contador [i]
FIN SI
FIN PARA

//Se vuelve a recorrer la tabla de contadores buscando los valores que son iguales al máximo (por si hay más de uno) y mostrar un mensaje //para cada vez que se encuentre, mostrando el valor del contador como caracter
PARA i=0; i < 256; i++
SI contador [i] == contador_max
letra_max = i
MOSTRAR La letra máxima es letra_max y aparece contador_max veces
FIN SI
FIN PARA
FIN



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
codigo fuente
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


#include <stdio.h>
#include <stdlib.h>

int main()
{
    char texto_teclado [100];
    int contador_letras [256];
    int i, mayor, codigo;

    //se inicializa texto_teclado a un valor
    strcpy (texto_teclado, "en un lugar de galicia de cuyo nombre no quiero acordarme");

    for (i=0;i<256;i++) contador_letras[i]=0;

    printf("Introduce un texto por teclado: ");
    gets(texto_teclado);

    for (i=0;i<strlen(texto_teclado);i++)
    {
        if (texto_teclado[i] != ' ') contador_letras [texto_teclado[i]]++;
    }

    mayor = contador_letras[0];

    for (i=0;i<255;i++)
    {
        if (contador_letras[i]>mayor)
            {
                mayor = contador_letras[i];
                codigo = i;
            }

    }

    printf("La letra que mas aparece es %c y aparece %d veces.", codigo, mayor);

    return 0;
}

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...