1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Solucionado Algoritmo en C

Tema en 'C / C++' comenzado por Briaares, 4 de Marzo de 2015.

Estado del tema:
No está abierto para más respuestas.
  1. Briaares

    Briaares Nuevo Miembro

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    26
    Me gusta recibidos:
    0
    Puntos de trofeos:
    1
    Género:
    Hombre
    reto en C: tienes una palabra escaneada, y la procesas para que el resultado que quede en orden de el abecedario, y poner el numero de concidencias en la palabra. por ejemplo: Twitter: 1e1i1r3t1w
     
  2. agusti

    agusti
    Moderador

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    260
    Me gusta recibidos:
    106
    Puntos de trofeos:
    43
    Género:
    Hombre
    Aquí va:
    Código (Text):

    #include <stdio.h>

    int main(int args, char** argv) {
        unsigned char word[256];
        unsigned char ocurrences[256] = {0};

        printf("Ingrese una palabra: ");
        scanf("%s", word);

        int i = 0;
        while(word[i] != '\0') {
            ocurrences[word[i++]]++;
        }

        printf("Palabra procesada: ");
        for(i = 0; i < 256; i++) {
            if(ocurrences[i])
                printf("%i%c", ocurrences[i], i);
        }

        printf("\n");

        return 0;
    }
     
    Espero que te sirva. Suerte con tu tarea, jejejeje!
     
    A Side Master le gusta esto.
  3. Briaares

    Briaares Nuevo Miembro

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    26
    Me gusta recibidos:
    0
    Puntos de trofeos:
    1
    Género:
    Hombre
  4. Briaares

    Briaares Nuevo Miembro

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    26
    Me gusta recibidos:
    0
    Puntos de trofeos:
    1
    Género:
    Hombre
    @agusti me podrias explicar que significa cada cosa?
     
  5. agusti

    agusti
    Moderador

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    260
    Me gusta recibidos:
    106
    Puntos de trofeos:
    43
    Género:
    Hombre
    Te puse el código con comentarios
    Código (Text):

    // Llamada a la librería para utilizar printf y scanf
    #include <stdio.h>

    int main(int args, char** argv) {
        // 'word' almacena palabras de hasta 256 caracteres
        unsigned char word[256];
        // 'ocurrences' almacena la cantidad de veces que
        // aparece un caracter. Son 256 caracteres en la tabla ASCII
        // inicializamos todo el array en 0
        unsigned int ocurrences[256] = {0};

        // Petición de la palabra por consola
        printf("Ingrese una palabra: ");
        scanf("%s", word);

        // Iteramos por cada letra hasta
        // llegar al fin de la palabra
        int i = 0;
        while(word[i] != '\0') {
            // word[i] corresponde al carácter en la posición i
            // ocurrences[word[i]] es el caracter que aumentamos en 1
            // Y finalmente aumentamos en 1 la variable i para pasar al siguiente caracter en word
            ocurrences[word[i++]]++;
        }

        // Finalmente es cuestión de iterar sobre ocurrences
        // Si ocurrences[i] es mayor a 0, se imprime la cantidad, y el caracter asociado
        printf("Palabra procesada: ");
        for(i = 0; i < 256; i++) {
            if(ocurrences[i])
                printf("%i%c", ocurrences[i], i);
        }

        printf("\n");

        return 0;
    }
     
    El único detalle es que el programa diferencia una mayúscula de una minúscula (es decir, 'A' no es lo mismo que 'a'), así que dejo a tu criterio el acomodarlo según tus necesidades.

    Espero te sirva. Saludos!
     
Estado del tema:
No está abierto para más respuestas.

Comparte esta página