¡Correcto! Esa es la estrategia que vamos a seguir. Si tú
prefieres otra, prueba a programarlo y si te sale, ¡estupendo!.
Vamos a dividir la tarea en los siguientes bloques:
- Leer letra
- Mirar a ver si está en la lista
- Si no está, añadirla y contarla
Repasa la estrategia hasta que entiendas lo que se pretende, antes
de seguir.
La función podría construirse sobre el siguiente
esqueleto:
#define MAXLETRAS 100
void cuenledis(.... fichero, .... numledis) {
.... letra...
.....listadistin....
....posicion... /* donde encuentre a la letra en la lista */
....=0; /* Ponemos a 0 inicialmente la cantidad de letras */
while(fscanf(....letra) == ...) {
busca(...listadistin,...numledis,...letra,....posicion);
if (posicion .... -1) {/* Es que no la
encontró */
listadistin... /* La ponemos al
final */
...numledis... /* La contamos */
}
}
}
Cópiala en tu programa en el hueco que preparaste para ella.
Cuando ya la hayas copiado sigues con la siguiente cuestión.
Los argumentos de la función son el fichero y el número
de letras distintas. Completa la cabecera: