Bonjour,
Mon avis sur la rédaction de cet énoncé :
*) Objectif de l'exercice à peu près clair. Heureusement pas de contextualisation artificielle.
*) Formulations peu claires :
-- pourquoi "sic" ici : "Dans le cas où plusieurs "CHICHE" existeraient (sic)" ?
-- terme vague : "on ne tiendra compte" (au lieu de dire "on renverra").
Peut-être que le "sic" veut ici dire "tel quel" mais ce n'est pas l'usage habituel de l'expression "sic" que d'ailleurs bien peu de candidats doivent connaître. Si on voulait dire que les lettres du mot sont "telles quelles", ie en majuscule, autant le formuler de manière explicite. Le(s) rédacteur(s) devrai(en)t lire ou relire le zen de Python.
*) Une fois de plus, la façon dont les données sont communiquées à l'utilisateur est très imprécise ce qui peut avoir
un impact non négligeable sur la manière de coder.
Il n'est pas dit si les lignes ont le même nombre de caractères (les exemples laissent penser que oui mais un énoncé
dans sa généralité ne doit pas être compris par extrapolation d'exemples, en particulier s'ils sont peu nombreux).
Il n'est pas dit ce qui suit l'entier n.
Il n'est pas dit que les chaines ne contiennent pas d'espaces (c'est capital car alors on ne peut plus utiliser le
spécificateur %s dans scanf()). Pareil, il n'est pas dit comment sont terminées les chaînes ou le fichier (caractère
nul, saut de ligne, EOF).
*) Le code-source C de base est inutilement compliqué (malloc complètement artificiels puisque la taille des données est connue à l'avance) voire orientant dans une mauvaise direction (on ne place pas la l'en-tête alors que son recours est plus que naturel, il est presque obligé).
Au passage, il n'y a aucune homogénéité de codage entre les différents modèles de code C, ça dépend de l'exercice, tantôt c'est int main(void), tantôt c'est int main(), tantôt c'est du scanf, tantôt du fgets, etc.
*) Sortie inutilement compliquée (source d'erreurs artificielles) : pourquoi les parenthèses ? pourquoi la virgule ? En outre, il semble naturel et d'usage de terminer la sortie par un saut de ligne, or il n'en apparait pas dans la sortie dans le code C.
Pour moi, c'est un nouvel exemple de rédaction trop relâchée.