Folco (./865) :
J'ai rien compris au code 
Il y a 3 compteurs:
i, qui compte de 1 à 100,
j qui compte la divisibilité par 3 et
k qui compte la divisibilité par 5. En ce qui concerne
i, la boucle est un simple
for (i=1; i<=100; i++) tout classique. Ce sont les variables
j et
k qui font la magie.
j compte 2, 1, 0, 2, 1, 0, 2, 1, 0, … (je commence par
j=2, et je décrémente
j s'il est non nul et recommence à 2 sinon), donc
j==0 si et seulement si
i est divisible par 3, et donc
j interprété comme un booléen est vrai si et seulement si
i n'est pas divisible par 3.
k fait la même chose, mais en partant de 4, donc ça donne la divisibilité par 4+1=5.
Reste le contenu de la boucle, qui ne fait qu'utiliser l'interprétation booléenne déjà donnée ci-dessus et l'opérateur ternaire. (
printf(…) est une expression comme une autre, même avec une valeur de retour, ça passe parfaitement dans un ternaire.)